238112026-01-30 08:07:56tamasnagyBányász RPG (40 pont)cpp17Elfogadva 40/4067ms1776 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct gyuri{
    long long xp;
    long long db;
};
vector<gyuri>matyi;
bool cmp(gyuri a, gyuri b){
    return a.xp<b.xp;
}

int main()
{
    long long n,time=0,xp=0;
    cin>>n;
    matyi.resize(n);
    for(int i=0; i<n; i++){
        cin>>matyi[i].xp;
    }
    for(int i=0; i<n; i++){
        cin>>matyi[i].db;
    }
    sort(matyi.begin(), matyi.end(), cmp);
    int mini=0, maxi=n-1;
    while(mini<=maxi){
        if(xp<matyi[mini].xp){
            if(matyi[maxi].db>matyi[mini].xp - xp){
                matyi[maxi].db-=(matyi[mini].xp-xp);
                time+=2*(matyi[mini].xp - xp);
                xp += (matyi[mini].xp - xp);
            }
            else{
                time+=2*(matyi[maxi].db);
                xp += matyi[maxi].db;
                matyi[maxi].db=0;
                maxi--;
            }
        }
        else if(xp>=matyi[mini].xp){
            time+=matyi[mini].db;
            xp+=matyi[mini].db;
            matyi[mini].db=0;
            mini++;
        }

    }
    cout<<time;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/013ms564 KiB
3Elfogadva2/21ms500 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/29ms564 KiB
6Elfogadva2/219ms892 KiB
7Elfogadva2/23ms508 KiB
8Elfogadva2/24ms472 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms352 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/41ms316 KiB
15Elfogadva2/239ms1080 KiB
16Elfogadva2/252ms1516 KiB
17Elfogadva2/241ms1264 KiB
18Elfogadva2/267ms1776 KiB