面向样例结果一不小心AC了 不知道为啥
#include<stdio.h>
#include<iostream>
#include<algorithm>
#define llu unsigned long long
#define inf 0x7fffffffffffff
using namespace std;
llu n,s,l,res,ans,mid=0;
bool cnt=0;
llu h[2000009],a[2000009];
bool check(llu x){
llu res=0;
for(int i=1;i<=n;i++){
if(h[i]+mid*a[i]>=l)
res=res+h[i]+mid*a[i];
if(res>=s){
return 0;
}
}
return 1;
}
int main()
{
cin>>n>>s>>l;//n,S,L,树的数量、订单总量和单块木料长度限制
//每块木料的长度不能小于 L 木料必须是整棵树(即不能为树的一部分)
// if(s<l){
// cout<<0;
// return 0;
// }
llu H=0;
for(int i=1;i<=n;i++){
scanf("%llu",&h[i]);
if(h[i]>=l)
H+=h[i];
}
if(H>=s){
cout<<0;
return 0;
}
for(int i=1;i<=n;i++){
scanf("%llu",&a[i]);
}
llu l=0,r=1e18+9;
while(l+1<r){
mid=(l+r)>>1;
if(check(mid)){
l=mid;
ans=max(ans,mid);
}
else{
r=mid;
}
}
cout<<ans+1;
return 0;
}