#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define int long long
const int N=3e5+5;
int a[N];
int b[N];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)cin>>b[i];
int s=0;
set<int>st;
for(int i=1;i<=n;i++){
st.insert(i);
}
for(int i=n;i>=1;i--){
auto it= st.upper_bound(i);
vector<int>del;
while(it!=st.end()){
int j=*it;
int x=min(a[i],b[j]);
s+=x;
a[i]-=x;
b[j]-=x;
if(b[j]==0)del.pb(j);
it++;
if(a[i]==0)break;
}
for(auto j:del)st.erase(j);
}
for(int i=1;i<=n;i++){
int x=min(a[i],b[i]);
a[i]-=x;
b[i]-=x;
s-=b[i];
}
cout<<s;
}
# | 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... |