Submission #1319860

#TimeUsernameProblemLanguageResultExecution timeMemory
1319860zyntherixSelf Study (JOI22_ho_t2)C++20
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pi pair<int, int> #define vi vector<int> #define vs vector<string> #define vb vector<bool> #define vpi vector<pi> #define pb push_back #define all(a) (a).begin(), (a).end() const int mod = 1e9 + 7; void solve() { int n, m; cin >> n >> m; int a[n], b[n]; multiset<pi> ms; for (int i = 0; i < n; i++) { cin >> a[i]; ms.insert({m * a[i], a[i]}); } for (int i = 0; i < n; i++) cin >> b[i]; for (int k = 0; k < n+(10000); k++) { pi sm = *ms.begin(); pi bg = *ms.rbegin(); ms.erase(ms.begin()); ms.erase(prev(ms.end())); int l = 0; int r = bg.first / bg.second; while (l + 1 < r) { int md = (l + r) / 2; if ((md * sm.second) + sm.first >= bg.first - (bg.second * md)) { r = md; } else { l = md; } } pi p = {(l * sm.second) + sm.first, bg.first - (bg.second * l)}; pi q = {(r * sm.second) + sm.first, bg.first - (bg.second * r)}; if (min(p.first, p.second) > min(q.first, q.second)) { pi sm2 = {p.first, sm.second}; pi bg2 = {p.second, bg.second}; ms.insert(sm2); ms.insert(bg2); } else { pi sm2 = {q.first, sm.second}; pi bg2 = {q.second, bg.second}; ms.insert(sm2); ms.insert(bg2); } } cout << ms.begin()->first << '\n'; } signed main() { ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int t = 1; // cin >> t; while (t--) { solve(); } 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...