Submission #1333257

#TimeUsernameProblemLanguageResultExecution timeMemory
1333257ricardsjansonsSelf Study (JOI22_ho_t2)C++20
54 / 100
136 ms5128 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;

const int N=3e5+5;

ll n,m,a[N],b[N];

bool check(ll x){
    __int128 y=0;
    for(int i=0;i<n;i++){
        ll k=(x+a[i]-1)/a[i];
        if(m<k){
            y+=(x-m*a[i]+b[i]-1)/b[i];
        }else{
            y-=m-k;
        }
    }
    return y<=0;
}

ll bs(){
    ll l=1,r=1e18;
    while(l<r){
        ll mid=(l+r+1)/2;
        if(check(mid)){
            l=mid;
        }else{
            r=mid-1;
        }
    }
    return l;
}

int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    cin>>n>>m;
    for(int i=0;i<n;i++)cin>>a[i];
    for(int i=0;i<n;i++){
        cin>>b[i];
        if(a[i]!=b[i])return 1;
        a[i]=max(a[i],b[i]);
    }
    cout<<bs();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...