94662024-02-22 09:14:14csaron71Bányász RPG (40 pont)cpp17Hibás válasz 3/4076ms6528 KiB
#include <bits/stdc++.h>
using namespace std;

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

    int szint=0;
    int ido=0;
    while (sor.size()>1) {
        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 {
                int sorvegf = sor.back().first;
                int sorvegs = sor.back().second;
                sor.pop_back();
                int 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";
    }
    int kelloszint=sor.front().first;
    int db=sor.front().second;
    //cout << "Szint: " << szint << " cel: " << kelloszint << " DB: " << db << "\n";

    if (kelloszint-szint<db) {
        int meg=db-(kelloszint-szint);
        ido+=2*(kelloszint-szint);
        ido+=meg;
    }
    else {
        ido+=2*db;
    }

    cout << ido << " \n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base3/40
1Elfogadva0/03ms1812 KiB
2Hibás válasz0/014ms2728 KiB
3Hibás válasz0/23ms2264 KiB
4Hibás válasz0/23ms2320 KiB
5Hibás válasz0/212ms2736 KiB
6Hibás válasz0/224ms3444 KiB
7Hibás válasz0/24ms2372 KiB
8Hibás válasz0/26ms2540 KiB
9Elfogadva3/33ms2432 KiB
10Hibás válasz0/33ms2536 KiB
11Hibás válasz0/32ms2608 KiB
12Hibás válasz0/33ms2752 KiB
13Hibás válasz0/43ms2972 KiB
14Hibás válasz0/43ms3044 KiB
15Hibás válasz0/241ms5012 KiB
16Hibás válasz0/254ms5760 KiB
17Hibás válasz0/245ms4992 KiB
18Hibás válasz0/276ms6528 KiB