#include<bits/stdc++.h>
using namespace std;
#define int long long
struct node{
int h,g;
}a[1000010];
int n,s,len;
inline bool check(int x){
int sum=0;
for(int i=1;i<=n;i++){
if(a[i].h+a[i].g*x>=len) sum+=a[i].h+a[i].g*x;
if(sum>=s) break;
}
return sum>=s;
}
signed main(){
scanf("%lld%lld%lld",&n,&s,&len);
for(int i=1;i<=n;i++) scanf("%lld",&a[i].h);
for(int i=1;i<=n;i++) scanf("%lld",&a[i].g);
if(check(0)==true){
printf("0");
return 0;
}
int l=0,r=LONG_LONG_MAX;
while(l<=r){
int mid=l+r>>1;
if(check(mid)) r=mid-1;
else l=mid+1;
}
printf("%lld",l);
return 0;
}
怎么看都对,怎么交都WA了第2个点