Submission #734505

#TimeUsernameProblemLanguageResultExecution timeMemory
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...