243002026-02-08 15:27:20Pedri26Bányász RPG (40 pont)cpp17Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms500 KiB
2Accepted0/04ms564 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms500 KiB
5Accepted2/24ms316 KiB
6Accepted2/27ms316 KiB
7Accepted2/22ms316 KiB
8Accepted2/22ms316 KiB
9Accepted3/31ms432 KiB
10Accepted3/31ms348 KiB
11Accepted3/31ms316 KiB
12Accepted3/31ms500 KiB
13Accepted4/42ms752 KiB
14Accepted4/41ms748 KiB
15Accepted2/210ms860 KiB
16Accepted2/214ms820 KiB
17Accepted2/212ms684 KiB
18Accepted2/217ms1008 KiB