133492025-01-07 16:45:06BucsMateBányász RPG (40 pont)cpp17Elfogadva 40/4064ms1860 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

struct Alapanyag
{
    int xp_limit;
    int mennyiseg;
};


bool hasonlit_novekvo(Alapanyag a, Alapanyag b)
{
    if(a.xp_limit < b.xp_limit){
        return true;
    }
    else{
        return false;
    }
}

int main()
{
    int N;
    cin >> N;
    vector<Alapanyag> alapanyagok(N+1);

    for(int i = 1; i <= N; i++){
        cin >> alapanyagok[i].xp_limit;
    }
    for(int i = 1; i <= N; i++){
        cin >> alapanyagok[i].mennyiseg;
    }

    sort(alapanyagok.begin()+1, alapanyagok.end(), hasonlit_novekvo);

    long long jelenlegi_tapasztalat = 0;
    long long eltelt_ido = 0;

    int bal_index = 1, jobb_index = N;

    while(bal_index <= jobb_index){
        if(jelenlegi_tapasztalat >= alapanyagok[bal_index].xp_limit){
            eltelt_ido += alapanyagok[bal_index].mennyiseg;
            jelenlegi_tapasztalat += alapanyagok[bal_index].mennyiseg;
            alapanyagok[bal_index].mennyiseg = 0;
            bal_index++;
        }
        else{
            long long szukseges_xp = alapanyagok[bal_index].xp_limit - jelenlegi_tapasztalat;
            if(szukseges_xp > alapanyagok[jobb_index].mennyiseg){
                eltelt_ido += 2*alapanyagok[jobb_index].mennyiseg;
                jelenlegi_tapasztalat += alapanyagok[jobb_index].mennyiseg;
                alapanyagok[jobb_index].mennyiseg = 0;
            }
            else{
                eltelt_ido += 2*szukseges_xp;
                jelenlegi_tapasztalat += szukseges_xp;
                alapanyagok[jobb_index].mennyiseg -= szukseges_xp;
            }
            if(alapanyagok[jobb_index].mennyiseg == 0){
                jobb_index--;
            }
        }
    }
    cout << eltelt_ido << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/012ms756 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/22ms316 KiB
5Elfogadva2/29ms564 KiB
6Elfogadva2/218ms820 KiB
7Elfogadva2/23ms316 KiB
8Elfogadva2/24ms500 KiB
9Elfogadva3/31ms412 KiB
10Elfogadva3/31ms400 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/42ms500 KiB
14Elfogadva4/41ms316 KiB
15Elfogadva2/237ms1296 KiB
16Elfogadva2/250ms1432 KiB
17Elfogadva2/241ms1212 KiB
18Elfogadva2/264ms1860 KiB