237442026-01-28 17:51:15algoproBányász RPG (40 pont)cpp17Hibás válasz 36/4064ms932 KiB
// UUID: 2dc5d497-c2aa-4857-a420-4da01ce60eb9
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n; cin >> n;
    vector<pair<int, int>> l(n);
    for (int i = 0; i < n; i++) {
        cin >> l[i].first;
    }
    for (int i = 0; i < n; i++) {
        cin >> l[i].second;
    }

    sort(l.rbegin(), l.rend());

    int xp = 0, t = 0;
    int i = 0, j = n-1;
    //cout << "i" << " " << "j" << " " << "x" << " " << "jf" << " " << "is" << " " << "t" << "\n";
    while (i <= j) {
        //cout << i << " " << j << " " << xp << " " << l[j].first << "  " << l[i].second << "  " << t << " ";
        if (xp >= l[j].first) {
            //cout << 1 << "\n";
            xp += l[j].second;
            t += l[j].second;
            j--;
        }
        else if (xp + l[i].second > l[j].first) {
            //cout << 2 << "\n";
            t += 2 * (l[j].first - xp);
            l[i].second -= l[j].first - xp;
            xp = l[j].first;

            xp += l[j].second;
            t += l[j].second;
            j--;
        }
        else {
            xp += l[i].second;
            //cout << 3 << "\n";
            t += 2 * (l[i].second);
            i++;
        }
    }

    cout << t;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base36/40
1Elfogadva0/01ms508 KiB
2Elfogadva0/013ms316 KiB
3Elfogadva2/21ms508 KiB
4Elfogadva2/22ms316 KiB
5Elfogadva2/29ms344 KiB
6Elfogadva2/221ms652 KiB
7Elfogadva2/23ms316 KiB
8Elfogadva2/24ms508 KiB
9Elfogadva3/31ms508 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms368 KiB
12Elfogadva3/31ms384 KiB
13Elfogadva4/42ms316 KiB
14Elfogadva4/41ms316 KiB
15Hibás válasz0/237ms808 KiB
16Elfogadva2/250ms932 KiB
17Hibás válasz0/241ms836 KiB
18Elfogadva2/264ms932 KiB