Submission #676569

#TimeUsernameProblemLanguageResultExecution timeMemory
676569rittin1Self Study (JOI22_ho_t2)C++17
100 / 100
219 ms11440 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N=3e5 + 5; int a[N]; int b[N]; bool check(int mid,int n,int m){ int days=0; for(int i=1;i<=n;i++){ if(mid<=(a[i]*m)){ if(mid%a[i]==0){ days+=(mid)/a[i]; } else{ days+=1+((mid)/a[i]); } } else{ days+=m; if((mid-a[i]*m)%b[i]==0){ days+=(mid-a[i]*m)/b[i]; } else{ days+=1+((mid-a[i]*m)/b[i]); } } if(days>(n*m)){ return 0; } } return 1; } signed main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m; cin >> n >> m; for(int i=1;i<=n;i++){ cin >> a[i]; } for(int i=1;i<=n;i++){ cin >> b[i]; a[i]=max(a[i],b[i]); } int hi=(1LL<<60); int lo=0; int mid; while(hi-lo>1){ mid=(hi+lo)/2; if(check(mid,n,m)){ lo=mid; } else{ hi=mid; } } cout << lo; }
#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...