Submission #545588

#TimeUsernameProblemLanguageResultExecution timeMemory
545588aryan12Self Study (JOI22_ho_t2)C++17
0 / 100
309 ms10904 KiB
#include <bits/stdc++.h> using namespace std; #define int long long mt19937_64 RNG(chrono::steady_clock::now().time_since_epoch().count()); int n, m; vector<int> a, b; bool Check(int value) { int temp = 0; for(int i = 1; i <= n; i++) { int credits = a[i] * m; if(credits >= value) { temp += (credits - value) / a[i]; //free courses you can take } else { temp -= (value - credits + b[i] - 1) / b[i]; //number of courses you need to take } } if(temp >= 0) return true; return false; } void Solve() { cin >> n >> m; a.resize(n + 1); b.resize(n + 1); for(int i = 1; i <= n; i++) { cin >> a[i]; } for(int i = 1; i <= n; i++) { cin >> b[i]; } for(int i = 1; i <= n; i++) { a[i] = max(a[i], b[i]); } int l = 0, r = 1e18; int ans = 0; while(l <= r) { int mid = (l + r) >> 1; if(Check(mid)) { ans = mid; l = mid + 1; } else { r = mid - 1; } } cout << ans << "\n"; } int32_t main() { auto begin = std::chrono::high_resolution_clock::now(); ios_base::sync_with_stdio(0); cin.tie(0); int t = 1; //cin >> t; while(t--) { Solve(); } auto end = std::chrono::high_resolution_clock::now(); auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin); cerr << "Time measured: " << elapsed.count() * 1e-9 << " seconds.\n"; 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...