Submission #1349900

#TimeUsernameProblemLanguageResultExecution timeMemory
1349900tte0Bikeparking (EGOI24_bikeparking)C++20
25 / 100
66 ms5104 KiB
// Author: Teoman Ata Korkmaz
#include <bits/stdc++.h> 
#define int int64_t
using namespace std;
///////////////////////////////////////////////////////////
int n,ans;
vector<int> a,b;

signed main(void){
	cin>>n;    
	a.resize(n);
	b.resize(n);
	for(auto& i:a)cin>>i;
	for(auto& i:b)cin>>i;

	int pa=0,pb=0;
	while(pa<n && pb<n){
		if(a[pa]==0){
			pa++;
			continue;
		}
		if(b[pb]==0 || pb<=pa){
			pb++;
			continue;
		}

		int t=min(a[pa],b[pb]);
		ans+=t;
		a[pa]-=t;
		b[pb]-=t;
	}

	pa=0,pb=0;
	while(pa<n && pb<n){
		if(a[pa]==0){
			pa++;
			continue;
		}
		if(b[pb]==0 || pb<pa){
			pb++;
			continue;
		}

		assert(pa==pb);
		int t=min(a[pa],b[pb]);
		a[pa]-=t;
		b[pb]-=t;
	}

	pa=0,pb=0;
	while(pa<n && pb<n){
		if(a[pa]==0){
			pa++;
			continue;
		}
		if(b[pb]==0){
			pb++;
			continue;
		}

		assert(pb<pa);
		int t=min(a[pa],b[pb]);
		ans-=t;
		a[pa]-=t;
		b[pb]-=t;
	}

	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...