9473 2024. 02. 22 09:33:20 csaron71 Bányász RPG (40 pont) cpp17 Elfogadva 40/40 70ms 10076 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    long long n;
    cin >> n;
    vector<long long> kell;
    vector<pair<long long, long long> > kovek;
    for (long long i=0; i<n; i++) {
        long long x;
        cin >> x;
        kell.push_back(x);
    }
    for (long long i=0; i<n; i++) {
        long long x;
        cin >> x;
        kovek.push_back({kell[i], x});
    }
    sort(kovek.begin(), kovek.end());
    deque<pair<long long, long long> > sor; // szint, hany
    for (auto sz : kovek) {
        sor.push_back(sz);
    }

    long long szint=0;
    long long ido=0;
    while (sor.size()>0) {
        if (szint>=sor.front().first) {
            szint+=sor.front().second;
            ido+=sor.front().second;
            sor.pop_front();
        }
        else {
            if (szint+sor.back().second<sor.front().first) {
                szint+=sor.back().second;
                ido+=2*sor.back().second;
                sor.pop_back();
            }
            else {
                long long sorvegf = sor.back().first;
                long long sorvegs = sor.back().second;
                sor.pop_back();
                long long utso=sor.front().first-szint;
                sorvegs-=utso;
                szint=sor.front().first;
                ido+=2*utso;
                sor.push_back({sorvegf, sorvegs});
            }
        }
        //cout << "\n" << szint << " TIME: " << ido << "\n";
    }
    /*
    long long kelloszint=sor.front().first;
    long long db=sor.front().second;
    //cout << "Szint: " << szint << " cel: " << kelloszint << " DB: " << db << "\n";

    if (kelloszint-szint<db) {
        long long meg=db-(max (kelloszint-szint, 0));
        ido+=2*(max(kelloszint-szint, 0));
        ido+=meg;
    }
    else {
        ido+=2*db;
    }*/

    cout << ido << " \n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1808 KiB
2 Elfogadva 0/0 14ms 3120 KiB
3 Elfogadva 2/2 3ms 2216 KiB
4 Elfogadva 2/2 3ms 2592 KiB
5 Elfogadva 2/2 12ms 3444 KiB
6 Elfogadva 2/2 24ms 5060 KiB
7 Elfogadva 2/2 4ms 3072 KiB
8 Elfogadva 2/2 6ms 3316 KiB
9 Elfogadva 3/3 3ms 3116 KiB
10 Elfogadva 3/3 3ms 3240 KiB
11 Elfogadva 3/3 3ms 3084 KiB
12 Elfogadva 3/3 3ms 3168 KiB
13 Elfogadva 4/4 3ms 3312 KiB
14 Elfogadva 4/4 3ms 3264 KiB
15 Elfogadva 2/2 41ms 7052 KiB
16 Elfogadva 2/2 54ms 8380 KiB
17 Elfogadva 2/2 43ms 7504 KiB
18 Elfogadva 2/2 70ms 10076 KiB