Submission #760828

#TimeUsernameProblemLanguageResultExecution timeMemory
760828PetrixSelf Study (JOI22_ho_t2)C++17
100 / 100
314 ms11356 KiB
#include <iostream>
using namespace std;

long long a[300000],b[300000];

int main()
{
    long long n,m,i,st,dr,mij,s,rasp;
    cin>>n>>m;
    for(i=0;i<n;i++){
        cin>>a[i];
    }
    for(i=0;i<n;i++){
        cin>>b[i];
        a[i]=max(a[i],b[i]);
    }
    st=rasp=0;dr=1ll<<60;
    while(st<=dr){
        s=0;
        mij=(st+dr)/2;
        for(i=0;i<n && s<=n*m;i++){
            if(a[i]*m<mij){
                s+=m+(mij-a[i]*m-1)/b[i]+1;
            }else{
                s+=(mij-1)/a[i]+1;
            }
        }
        if(s>m*n){
            dr=mij-1;
        }else{
            rasp=mij;
            st=mij+1;
        }
    }
    cout<<rasp;
    return 0;
}
#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...