167892025-05-13 11:26:50BencuBányász RPG (40 pont)cpp17Időlimit túllépés 34/40400ms1076 KiB
#include <bits/stdc++.h>

using namespace std;
int n,e,u,x,t;
struct bencu{
    int xp;
    int db;
}a[100001];
void beolvas(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].xp;
    }
    for(int i=1;i<=n;i++){
        cin>>a[i].db;
    }
}
int helyre(int elso, int utolso){
    int i=elso,j=utolso,p=elso;
    while(i<j){
        if(a[i].xp>a[j].xp){
            swap(a[i],a[j]);
            if(i==p){p=j;i++;}
                else{p=i;j--;}}
            else
                if(p==i)j--;
                    else i++;
        }
    return p;
}
void gyors(int elso, int utolso){
    if(elso<utolso){
        int k=helyre(elso,utolso);
        gyors(elso,k-1);
        gyors(k+1,utolso);
    }
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    beolvas();
    gyors(1,n);
    e=1;
    u=n;
    while(e<=u){
        if(a[e].xp<=x){x=x+a[e].db;t=t+a[e].db;e++;}
        else{
            x++;
            t=t+2;
            if(a[u].db==1)u--;
            else a[u].db--;
        }
    }
    cout<<t;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base34/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/06ms316 KiB
3Elfogadva2/21ms500 KiB
4Elfogadva2/22ms320 KiB
5Elfogadva2/2100ms536 KiB
6Időlimit túllépés0/2398ms784 KiB
7Elfogadva2/28ms452 KiB
8Elfogadva2/214ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/41ms316 KiB
15Időlimit túllépés0/2400ms832 KiB
16Elfogadva2/223ms912 KiB
17Időlimit túllépés0/2384ms820 KiB
18Elfogadva2/229ms1076 KiB