#include<bits/stdc++.h>
using namespace std;
const int NMAX = 3*1e5;
#define int long long
int parking[NMAX];
int users[NMAX];
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int N;
cin >> N;
for(int i = 0; i < N; i++)
{
cin >> parking[i];
}
for(int i = 0; i < N; i++)
{
cin >> users[i];
}
int iParking = N-1;
int score = 0;
for(int iU = N-1; iU >= 0; iU--)
{
iParking = min(iParking, iU-1);
while((iParking >= 0) && (users[iU] > 0))
{
int a = parking[iParking];
if(a >= users[iU])
{
parking[iParking] -= users[iU];
score += users[iU];
users[iU] = 0;
}
else
{
users[iU] -= a;
parking[iParking] = 0;
score += a;
iParking--;
}
}
//reste milieu
int u = users[iU];
int p = parking[iU];
users[iU] -= min(u,p);
parking[iU] -= min(u,p);
score -= users[iU];
}
cout << score;
}
| # | 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... |