徐梓畅 • 1年前
using namespace std; const int N=1e5+10; typedef long long ll; ll a[N],b[N],k,n; bool check(int x){
ll s=0;
for(int i=1;i<=n;i++){
if(a[i]*x>b[i]) s+=(a[i]*x-b[i]);
if(s>k) return false;
}
return true;
} int main(){
cin>>n>>k;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
ll l=0,r=2e9,ans=0,mid;
while(l<=r){
mid=(l+r)>>1;
if(check(mid)){
ans=mid;
l=mid+1;
}else r=mid-1;
}
cout<<ans;
return 0;
}
评论: