#include <bits/stdc++.h>
using namespace std;
const int N=6e5;
int n;
long long x[N];
long long y[N];
long long suf[N];
int main()
{
cin>>n;
for(int i=1;i<=n;++i){
cin>>x[i];
}
for(int i=1;i<=n;++i){
cin>>y[i];
}
for(int i=n;i>0;--i){
suf[i]=suf[i+1]+y[i];
}
int vel1=1;
int vel2=n;
long long answ=0ll;
for(int i=1;i<=n;++i){
while(y[i]!=0 && vel1<i){
long long p=min(x[vel1],y[i]);
if(vel1!=i){
answ+=p;
}
y[i]-=p;
x[vel1]-=p;
if(y[i]!=0)
vel1++;
}
if(suf[i+1]<x[i]){
long long p=min(y[i],x[i]-suf[i+1]);
y[i]-=p;
x[i]-=p;
}
while(y[i]!=0 && vel2>i){
long long p=min(x[vel2],y[i]);
y[i]-=p;
x[vel2]-=p;
if(i!=vel2)
answ-=p;
if(y[i]!=0){
vel2--;
}
}
}
cout<<answ;
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... |