242992026-02-08 15:17:44Pedri26Bányász RPG (40 pont)cpp17Hibás válasz 32/4028ms900 KiB
#include <bits/stdc++.h>

using namespace std;
int n, a[100001], 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=1, 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 
                {
                    int mennyikell=elso-xp;
                    if(b[utolso]>=mennyikell)
                    {
                        b[utolso]-=mennyikell;
                        xp+=mennyikell;
                        ido+=2*mennyikell;
                    }
                    else
                    {
                        xp+=mennyikell-b[utolso];
                        ido+=2*b[utolso];
                        b[utolso]=0;
                        utolso--;
                    }
                    //cout<<ido<<" "<<utolso<<" "<<xp<<endl;
                }
            }
        }
    }
    cout<<ido;

    
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base32/40
1Hibás válasz0/01ms316 KiB
2Elfogadva0/06ms564 KiB
3Elfogadva2/21ms512 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/24ms400 KiB
6Elfogadva2/28ms316 KiB
7Elfogadva2/22ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva3/32ms512 KiB
10Elfogadva3/31ms500 KiB
11Elfogadva3/32ms316 KiB
12Elfogadva3/32ms316 KiB
13Elfogadva4/42ms564 KiB
14Elfogadva4/42ms564 KiB
15Hibás válasz0/216ms752 KiB
16Hibás válasz0/220ms812 KiB
17Hibás válasz0/217ms768 KiB
18Hibás válasz0/228ms900 KiB