#include<bits/stdc++.h>
using namespace std;
signed main() {
int n; cin >> n;
vector<int> x(n), y(n);
for(int i=0; i<n; i++) cin >> x[i];
for(int i=0; i<n; i++) cin >> y[i];
int ans=0;
vector<int> q;
for(int i=n-1; i>0; i--) {
int sml=min(x[i-1], y[i]);
ans+=sml;
y[i]-=sml;
x[i-1]-=sml;
if(x[i-1] == 0 && y[i] == 0) continue;
if(x[i-1] == 0) q.push_back(i);
else {
while(!q.empty()) {
int end=q[q.size()-1];
sml=min(y[end], x[i-1]);
ans+=sml;
y[end]-=sml;
x[i-1]-=sml;
if(y[end] == 0) q.pop_back();
if(x[i-1] == 0) break;
}
}
}
for(int i=0; i<n; i++) {
ans-=max(0, y[i]-x[i]);
}
cout << ans;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |