제출 #734505

#제출 시각아이디문제언어결과실행 시간메모리
7345051075508020060209tcSelf Study (JOI22_ho_t2)C++14
0 / 100
614 ms8292 KiB

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;int m;
int ar[300005];
int br[300005];
int cr[300005];

int ok(int mi){

int lft=0;
for(int i=1;i<=n;i++){
    int nd=(mi+ar[i]-1)/ar[i];
    if(nd<=m){
        cr[i]=0;
        lft+=m-nd;
    }else{
        cr[i]=mi-ar[i]*m;
    }
}
for(int i=1;i<=n;i++){
    if(cr[i]==0){continue;}
    lft-=(cr[i]+br[i]-1)/br[i];
}
if(lft>=0){return 1;}
return 0;
}



signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
    cin>>ar[i];
}
for(int i=1;i<=n;i++){
    cin>>br[i];
    ar[i]=max(ar[i],br[i]);
}


int l=1;int r=1e18;
while(l<r){
    int mi=l+(r-l+1)/2;
    if(ok(mi)){
        l=mi;
    }else{
        r=mi-1;
    }
}
cout<<l<<endl;


}
#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...