Submission #1314778

#TimeUsernameProblemLanguageResultExecution timeMemory
1314778Noname_1900Bikeparking (EGOI24_bikeparking)C++20
25 / 100
29 ms5084 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...