#include <bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define pb push_back
#define ertunt return
#define vodka void
#define sleepearly ertunt
using namespace std;
int main() {
ll n;
cin >> n;
vector<ll> a(n);
for (ll i = 0; i < n; i++) cin >> a[i];
vector<ll> b(n);
for(ll i = 0; i < n; i++){
cin >> b[i];
}
ll ans = 0;
vector<ll>s;
for(ll i = 0; i < n; i++){
while(!s.empty()){
auto it = s.end();
it--;
ll j = *it;
ll x = min(a[j],b[i]);
ans+=x;
a[j]-=x;
b[i]-=x;
if(a[j] == 0)s.pop_back();
else break;
}
s.pb(i);
}
for(ll i = 0; i < n;i++){
ans-=max(0ll,b[i] - a[i]);
}
cout << ans;
}
# | 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... |