Submission #1182518

#TimeUsernameProblemLanguageResultExecution timeMemory
1182518ALTAKEXESelf Study (JOI22_ho_t2)C++20
100 / 100
220 ms7452 KiB
#include <bits/stdc++.h> #define ll long long #define ff first #define ss second using namespace std; int main() { ll n, m; cin >> n >> m; ll a[n + 5], b[n + 5]; 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]); } ll l = 0, r = 1e18; ll need[n + 5]; while (l < r) { ll mid = (l + r + 1) / 2; fill(need + 1, need + n + 1, mid); ll left = 0; for (ll i = 1; i <= n; i++) { ll x = min((need[i] + a[i] - 1) / a[i], m); need[i] -= x * a[i]; left += m - x; } ll cur = 0; bool ok = 1; for (ll i = 1; i <= n; i++) { if (need[i] > 0) { cur += (need[i] + b[i] - 1) / b[i]; if (cur > left) { ok = 0; break; } } } if (ok) l = mid; else r = mid - 1; } cout << l; 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...