247902026-02-15 11:00:41miszorimarciBányász RPG (40 pont)cpp17Elfogadva 40/4030ms1804 KiB
#include <bits/stdc++.h>

using namespace std;

struct mat {
    long long lim;
    long long a;
};

bool srt(const mat& a, const mat& b) {
    return a.lim < b.lim;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;cin >> n;

    vector<mat> v(n);
    for (int i = 0; i < n; ++i) cin >> v[i].lim;
    for (int i = 0; i < n; ++i) cin >> v[i].a;

    sort(v.begin(), v.end(), srt);

    long long ans = 0;
    long long xp = 0;
    int l = 0;
    int r = n - 1;

    while (l <= r) {
        if (xp >= v[l].lim) {
            ans += v[l].a;
            xp += v[l].a;
            l++;
        } else {
            long long needed = v[l].lim - xp;
            long long e = min(needed, v[r].a);

            ans += (e * 2);
            xp += e;
            v[r].a -= e;

            if (v[r].a == 0) {
                r--;
            }
        }
    }

    cout << ans << endl;

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/06ms756 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/24ms564 KiB
6Elfogadva2/28ms928 KiB
7Elfogadva2/22ms356 KiB
8Elfogadva2/23ms316 KiB
9Elfogadva3/31ms500 KiB
10Elfogadva3/31ms520 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms384 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/41ms424 KiB
15Elfogadva2/217ms1220 KiB
16Elfogadva2/223ms1332 KiB
17Elfogadva2/219ms1076 KiB
18Elfogadva2/230ms1804 KiB