Submission #886967

#TimeUsernameProblemLanguageResultExecution timeMemory
886967stefanneaguSelf Study (JOI22_ho_t2)C++17
0 / 100
436 ms8276 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int nmax = 3e5 + 1; int a[nmax], b[nmax], n, m; bool check(int nrm) { int cnt = 0; for(int i = 1; i <= n; i ++) { //cout << "Suntem la " << i << endl; int nrai = nrm / a[i]; if(nrm % a[i] != 0) { nrai ++; //cout << "uWu(" << a[i] << " " << nrm << ") "; } // cout << " nrai = " << nrai << " si al final "; int cntn = 0; if(nrai <= m) { cnt += nrai; cntn += nrai; } else { nrai = m; int rm = nrm - a[i] * nrai; cnt += rm / b[i]; cnt += nrai; cntn += rm / b[i]; cntn += nrai; if(rm % b[i] != 0) { cnt ++; cntn ++; } } //cout << "Cnt: " << cntn << endl; } // cout << "Cnt final: " << cnt << endl; return (cnt <= n * m); } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 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 l = 0, r = 1e18, ans = 0; while(l <= r) { int mid = (l + r) / 2; if(check(mid) == true) { ans = mid; l = mid + 1; } else { r = mid - 1; } } cout << ans; 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...