Untitled

 avatar
unknown
plain_text
2 years ago
628 B
10
Indexable
#define ll long long

bool check(ll pos,int k,vector<int>&a,vector<int>&b){
    int n=a.size();
    for(int i=0;i<n;i++){
        ll reqt=a[i]*pos;
        ll reqc=max(reqt-b[i],0ll);
        if(k>=reqc)
            k-=reqc;
        else
            return false;
    }
    return true;
}


long long solution(int n,int k,vector<int>a,vector<int>b){

    ll ans;
    ll low=0,high=2*(1e9);
    while(low<=high){
        ll mid=(low+high)/2;
        if(check(mid,k,a,b)){
            ans=mid;
            low=mid+1;
        }else{
            high=mid-1;
        }
    }
    cout<<ans<<endl;
    
}
Editor is loading...