9449 2024. 02. 21 20:42:45 Vkrisztian01 Bányász RPG (40 pont) cpp11 Elfogadva 40/40 67ms 6500 KiB
#include <iostream>
#include<vector>
#include<set>
#include<algorithm>

using namespace std;

long long int nulla=0;
long long  int n,k;
long long  int ido=0,pont=0;
vector<pair<long long int,long long int> > lista;

int main()
{
    cin>>n;
    lista.resize(n);
    for(int i=0;i<n;i++) cin>>lista[i].first;
    for(int i=0;i<n;i++) cin>>lista[i].second;
    sort(lista.begin(),lista.end());
    int eleje=0,vege=n-1;
    while(eleje<=vege)
    {
        while(vege>=eleje && pont<lista[eleje].first)
        {
            k=max(nulla,min(lista[eleje].first-pont,lista[vege].second));
            //cout<<k;
            ido+=2*k;
            pont+=k;
            lista[vege].second-=k;
            if(lista[vege].second==0) --vege;
        }
        ido+=lista[eleje].second;
        pont+=lista[eleje].second;
        ++eleje;
    }
    cout<<ido;
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1748 KiB
2 Elfogadva 0/0 14ms 2216 KiB
3 Elfogadva 2/2 3ms 2124 KiB
4 Elfogadva 2/2 3ms 2220 KiB
5 Elfogadva 2/2 12ms 2664 KiB
6 Elfogadva 2/2 23ms 3400 KiB
7 Elfogadva 2/2 4ms 2660 KiB
8 Elfogadva 2/2 6ms 2956 KiB
9 Elfogadva 3/3 3ms 3064 KiB
10 Elfogadva 3/3 3ms 3272 KiB
11 Elfogadva 3/3 3ms 3268 KiB
12 Elfogadva 3/3 3ms 3512 KiB
13 Elfogadva 4/4 3ms 3736 KiB
14 Elfogadva 4/4 3ms 3808 KiB
15 Elfogadva 2/2 39ms 5036 KiB
16 Elfogadva 2/2 52ms 5776 KiB
17 Elfogadva 2/2 43ms 5504 KiB
18 Elfogadva 2/2 67ms 6500 KiB