237752026-01-29 09:33:55tamasnagyBányász RPG (40 pont)cpp17Wrong answer 36/4064ms1076 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct gyuri{
    int xp;
    int db;
};
vector<gyuri>matyi;
bool cmp(gyuri a, gyuri b){
    return a.xp<b.xp;
}

int main()
{
    int 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){
        //cout<<mini<<' '<<maxi<<endl;
        if(xp<matyi[mini].xp){
            if(matyi[maxi].db>0){
                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;
                }
                else{

                    time+=2*(matyi[maxi].db);
                    xp += matyi[maxi].db;
                    matyi[maxi].db=0;
                }
            }
            else{
                maxi--;
            }
        }
        else if(xp>=matyi[mini].xp){
            time+=matyi[mini].db;
            xp+=matyi[mini].db;
            matyi[mini].db=0;
            mini++;
        }

    }
    cout<<time;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base36/40
1Accepted0/01ms316 KiB
2Accepted0/013ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/28ms316 KiB
6Accepted2/218ms656 KiB
7Accepted2/23ms332 KiB
8Accepted2/24ms316 KiB
9Accepted3/31ms316 KiB
10Accepted3/31ms556 KiB
11Accepted3/31ms316 KiB
12Accepted3/31ms316 KiB
13Accepted4/41ms316 KiB
14Accepted4/41ms316 KiB
15Wrong answer0/237ms568 KiB
16Accepted2/250ms856 KiB
17Wrong answer0/241ms832 KiB
18Accepted2/264ms1076 KiB