Submission #1151525

#TimeUsernameProblemLanguageResultExecution timeMemory
1151525Jawad_Akbar_JJBikeparking (EGOI24_bikeparking)C++20
25 / 100
24 ms3912 KiB
#include <iostream>

using namespace std;
int a[300005], b[300005], pre[300005];

int main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int n, Ans = 0;
	cin>>n;

	for (int i=1;i<=n;i++)
		cin>>a[i];

	for (int i=1;i<=n;i++)
		cin>>b[i], pre[i] = pre[i-1] + b[i];

	for (int i=1, ptr = 1;i<=n;){
		if (ptr < i){
			int k = min(a[ptr], b[i]);
			a[ptr] -= k, b[i] -= k;
			ptr += !a[ptr], i += !b[i];
			Ans += k;
		}
		else if (ptr == i){
			int k = a[ptr] - min(pre[n] - pre[i], a[ptr]);
			a[ptr] -= min(b[i], k);
			Ans -= max(0, b[i] - k), i++;
		}
		else
			Ans -= b[i], i++;
	}
	cout<<Ans<<'\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...