Submission #1179709

#TimeUsernameProblemLanguageResultExecution timeMemory
1179709Szymon_PilipczukSelf Study (JOI22_ho_t2)C++20
62 / 100
262 ms5116 KiB
#include <bits/stdc++.h> using namespace std; #define st first #define nd second #define ll long long ll b[300000]; ll a[300000]; ll n,m; bool check(ll v) { ll av = 0; for(int i = 0;i<n;i++) { ll cv = v; //cout<<cv<<"\n"; if(m*a[i] < cv) { cv-=m*a[i]; av -= (cv+b[i]-1)/b[i]; } else { av += m - (cv+a[i]-1)/a[i]; } if(av < -1e18) { break; } //cout<<av<<"\n"; } if(av >= 0) { return true; } return false; } int main() { cin>>n>>m; for(int i =0 ;i<n;i++) { cin>>a[i]; } for(int i =0;i<n;i++) { cin>>b[i]; a[i] = max(a[i],b[i]); } ll l = 0; ll r = 1e18; while(l+1 < r) { ll mid = (l+r)/2; //cout<<mid<<"\n"; if(check(mid)) { l = mid; } else { r = mid; } } cout<<l; }
#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...