243002026-02-08 15:27:20Pedri26Bányász RPG (40 pont)cpp17Elfogadva 40/4017ms1008 KiB
#include <bits/stdc++.h>

using namespace std;
int n, a[100001];
long long  b[100001], xp, ido;


int main() {
	
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;i++)
    {
        int l;
        cin>>l;
        b[a[i]]+=l;
    }
    int elso=0, utolso=100000;
    //sort(a+1, a+n+1);
    while(elso<=utolso)
    {
        if(b[elso]==0)elso++;
        else 
        {
            if(elso<=xp)
            {
                ido+=b[elso];
                xp+=b[elso];
                b[elso]=0;
                elso++;
                //cout<<ido<<" "<<elso<<" "<<xp<<endl;
            }
            else
            {
                if(b[utolso]==0)utolso--;
                else 
                {
                    long long mennyikell=elso-xp;
                    long long banyaszhato=min(mennyikell, b[utolso]);
                    ido+=2*banyaszhato;
                    xp+=banyaszhato;
                    b[utolso]-=banyaszhato;
                    if(b[utolso]==0)utolso--;
                    //cout<<ido<<" "<<utolso<<" "<<xp<<endl;
                }
            }
        }
    }
    cout<<ido;

    
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms500 KiB
2Elfogadva0/04ms564 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms500 KiB
5Elfogadva2/24ms316 KiB
6Elfogadva2/27ms316 KiB
7Elfogadva2/22ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva3/31ms432 KiB
10Elfogadva3/31ms348 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms500 KiB
13Elfogadva4/42ms752 KiB
14Elfogadva4/41ms748 KiB
15Elfogadva2/210ms860 KiB
16Elfogadva2/214ms820 KiB
17Elfogadva2/212ms684 KiB
18Elfogadva2/217ms1008 KiB