#include <bits/stdc++.h>
#define ll long long
#define db double
#define ld long double
#define endl '\n'
#define eb emplace_back
#define em emplace
#define pb push_back
#define pf push_front
#define pp pop_back
#define fr first
#define sc second
#define sz size
#define ir insert
using namespace std;
const ll md =1e9 + 7;
const ll mx = 1e9 ;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie() ;
ll n ;cin >> n;
vector<ll> a(n) , b(n) ;
for(ll i =0 ; i < n ; i++) cin>> a[i] ;
for(ll i =0 ;i < n ; i++)cin >>b[i] ;
stack<ll> s ;
ll r1 = 0 , r2 = 0 ;
for(ll i =0 ; i < n ; i++) {
if(i && a[i -1]) s.push(i - 1) ;
while(s.sz() && b[i]){
ll j = s.top() ; ll tk = min(b[i] , a[j]) ;
b[i] -= tk ; a[j] -= tk ;
r1+= tk;
if(a[j] == 0) s.pop() ;
}
}
for(ll i = 0; i < n ; i++) {
ll tk=min(a[i] ,b[i] );
a[i] -= tk ; b[i] -=tk ;
r2 += b[i] ;
}
cout <<r1- r2 << endl ;
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... |