Submission #1207623

#TimeUsernameProblemLanguageResultExecution timeMemory
1207623trimkusBikeparking (EGOI24_bikeparking)C++20
100 / 100
82 ms3912 KiB
#include <bits/stdc++.h>
using namespace std;



int main() {
	//~ ifstream cin("input.txt");
	int n;
	cin >> n;
	vector<int> a(n), b(n);
	for (int i = 0; i < n; ++i) {
		cin >> a[i];
	}
	for (int i = 0; i < n; ++i) {
		cin >> b[i];
	}
	stack<int> st;
	int res1 = 0, res2 = 0;
	for (int i = 0; i < n; ++i) {
		if (i && a[i - 1]) st.push(i - 1);
		while (st.size() && b[i]) {
			int j = st.top();
			int take = min(b[i], a[j]);
			b[i] -= take;
			a[j] -= take;
			res1 += take;
			if (a[j] == 0) st.pop();
		}
	}
	for (int i = 0; i < n; ++i) {
		int take = min(a[i], b[i]);
		a[i] -= take;
		b[i] -= take;
		res2 += b[i];
	}
	cout << res1 - res2 << "\n";
}
#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...