蒟蒻看不明白。。。
#include<bits/stdc++.h>
#define ull unsigned long long
using namespace std;
const int maxn = 2e5 + 100;
ull n,s,len,ans;
ull a[maxn],b[maxn];
bool myck(ull x){
ull tol = 0;
for(ull i = 1;i <= n;++ i){
ull t = a[i] + x * b[i];
if(t > len) tol += t;
if(tol >= s) return true;
}
return false;
}
int main(){
scanf("%lld%lld%lld",&n,&s,&len);
for(ull i=1;i<=n;++i) scanf("%lld",&a[i]);
for(ull i=1;i<=n;++i) scanf("%lld",&b[i]);
if(myck(0)){
printf("0\n");
return 0;
}
ull l = 0 , r = 1e18;
while(l < r){
ull mid = (l+r)>>1;
if(myck(mid)) r = mid;
else l = mid + 1;
}
printf("%lld\n",l);
return 0;
}