Submission #1151491

#TimeUsernameProblemLanguageResultExecution timeMemory
1151491Ghulam_JunaidBikeparking (EGOI24_bikeparking)C++20
100 / 100
137 ms16876 KiB
#include <bits/stdc++.h> using namespace std; const int N = 3e5 + 100; int n, x[N], y[N]; int main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> n; set<int> st; for (int i = 0; i < n; i ++) cin >> x[i], st.insert(i); for (int i = 0; i < n; i ++) cin >> y[i]; int ans = 0; for (int i = 0; i < n; i ++){ auto it = st.lower_bound(i); if (it == st.begin()) continue; it--; int mn = min(x[*it], y[i]); y[i] -= mn; x[*it] -= mn; ans += mn; if (x[*it] == 0){ st.erase(it); i--; } } for (int i = n - 1; i >= 0; i --){ auto it = st.lower_bound(i); if (it == st.end()) continue; int mn = min(x[*it], y[i]); y[i] -= mn; x[*it] -= mn; ans -= ((*it == i) ? 0 : mn); if (x[*it] == 0){ st.erase(it); i++; } } cout << ans << endl; }
#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...