94482024-02-21 20:41:35Vkrisztian01Bányász RPG (40 pont)cpp11Hibás válasz 36/4068ms4532 KiB
#include <iostream>
#include<vector>
#include<set>
#include<algorithm>

using namespace std;

 int n,k;
 int ido=0,pont=0;
vector<pair<int,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(0,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ÖsszpontTesztVerdiktIdőMemória
base36/40
1Elfogadva0/03ms1876 KiB
2Elfogadva0/014ms2320 KiB
3Elfogadva2/23ms2552 KiB
4Elfogadva2/23ms2512 KiB
5Elfogadva2/212ms2952 KiB
6Elfogadva2/223ms3316 KiB
7Elfogadva2/24ms2884 KiB
8Elfogadva2/26ms2988 KiB
9Elfogadva3/32ms3080 KiB
10Elfogadva3/33ms3224 KiB
11Elfogadva3/33ms3248 KiB
12Elfogadva3/33ms3332 KiB
13Elfogadva4/43ms3356 KiB
14Elfogadva4/43ms3332 KiB
15Hibás válasz0/239ms4008 KiB
16Elfogadva2/252ms4140 KiB
17Hibás válasz0/243ms4012 KiB
18Elfogadva2/268ms4532 KiB