Submission #1245706

#TimeUsernameProblemLanguageResultExecution timeMemory
1245706AMel0nBikeparking (EGOI24_bikeparking)C++20
25 / 100
26 ms4936 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define FOR(i,N) for(ll i = 0; i < N; i++)
#define all(x) (x).begin(), (x).end()
#define F first
#define S second


signed main() {
    cin.tie(0); ios::sync_with_stdio(false);
    ll N;
    cin >> N;
    vector<ll> park(N), user(N);
    FOR(i, N) cin >> park[i];
    FOR(i, N) cin >> user[i];
    ll p = 0;
    ll res = 0;
    for(ll u = 1; u < N; u++) {
        while(p < u) {
            if (!user[u]) break;
            ll delta = min(park[p], user[u]);
            park[p] -= delta;
            user[u] -= delta;
            res += delta;
            if (!park[p]) p++;
        }
    }
    FOR(i, N) {
        ll delta = min(park[i], user[i]);
        park[i] -= delta;
        user[i] -= delta;
    }
    p = N-1;
    for(ll u = N-2; u >= 0; u--) {
        while(u < p) {
            if (!user[u]) break;
            ll delta = min(park[p], user[u]);
            park[p] -= delta;
            user[u] -= delta;
            res -= delta;
            if (!park[p]) p--;
        }
    }
    cout << res << '\n';
}
#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...