#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
#define dd(x) cout<<#x<<" is "<<x<<endl;
signed main(){
int n; cin>>n;
int b[n], p[n];
int sum = 0;
for(int i=0; i<n; i++) cin>>b[i];
for(int i=0; i<n; i++) cin>>p[i], sum -= p[i];
stack<pii>s;
for(int i=0; i<n; i++){
while(s.size() and p[i]){
auto[x,id] = s.top(); s.pop();
sum += 2*min(p[i],x);
if(x >= p[i]){
x -= p[i];
b[id] = x;
s.push({x,id});
p[i] = 0;
} else {
p[i] -= x;
b[id] = 0;
}
}
s.push({b[i],i});
}
for(int i=0; i<n; i++){
if(b[i] and p[i]){
int x = min(b[i],p[i]);
b[i] -= x, p[i] -= x;
sum += x;
}
}
cout<<sum;
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... |