Submission #1062254

#TimeUsernameProblemLanguageResultExecution timeMemory
1062254PurpleCrayonBikeparking (EGOI24_bikeparking)C++17
100 / 100
39 ms9944 KiB
#include <bits/stdc++.h> using namespace std; #define sz(v) int(v.size()) #define ar array typedef long long ll; const int N = 50, MOD = 1e9+7; void solve() { int n; cin >> n; vector<ll> a(n); for (auto& x : a) cin >> x; vector<ll> b(n); for (auto& x : b) cin >> x; // I want to be matched with things lower than me ll happy = 0; vector<int> stk; for (int i = 0; i < n; i++) { if (i && a[i-1]) stk.push_back(i-1); while (sz(stk) && b[i]) { int p = stk.back(); ll cur = min(b[i], a[p]); happy += cur; b[i] -= cur; a[p] -= cur; if (!a[p]) stk.pop_back(); } } ll sad = 0; for (int i = 0; i < n; i++) { ll cur = min(a[i], b[i]); sad += b[i] - cur; } cout << happy - sad << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(0); int T = 1; // cin >> T; while (T--) solve(); }
#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...