125582024-12-22 22:01:17BucsMateMekk Mester munkái (50 pont)cpp17Accepted 50/5090ms2272 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct Munka
{
    int kezdet, veg, sorszam;
};

bool hasonlitas(Munka munka1, Munka munka2)
{
    if(munka1.veg < munka2.veg){
        return true;
    }
    else if(munka1.veg > munka2.veg){
        return false;
    }
    else{
        return munka1.kezdet < munka2.kezdet;
    }
}

int main()
{
    int N, H;
    cin >> N >> H;
    vector<Munka> megrendelesek(N);
    vector<int> mekk, fia;
    for(int i = 0; i < N; i++){
        int eleje, vege;
        cin >> eleje >> vege;
        megrendelesek[i] = {eleje, vege, i};
    }
    sort(megrendelesek.begin(), megrendelesek.end(), hasonlitas);

    int utolso_munka_mekk = -1, utolso_munka_fia = -1;
    for(int i = 0; i < N; i++){
        bool lehetMekk = megrendelesek[i].kezdet > utolso_munka_mekk;
        bool lehetFia = megrendelesek[i].kezdet > utolso_munka_fia;
        if(lehetMekk && !lehetFia){
            utolso_munka_mekk = megrendelesek[i].veg;
            mekk.push_back(megrendelesek[i].sorszam);
        }
        else if(!lehetMekk && lehetFia){
            utolso_munka_fia = megrendelesek[i].veg;
            fia.push_back(megrendelesek[i].sorszam);
        }
        else if(lehetMekk && lehetFia){
            if(utolso_munka_mekk > utolso_munka_fia){
                utolso_munka_mekk = megrendelesek[i].veg;
                mekk.push_back(megrendelesek[i].sorszam);
            }
            else{
                utolso_munka_fia = megrendelesek[i].veg;
                fia.push_back(megrendelesek[i].sorszam);
            }
        }
    }

    cout << mekk.size() << " " << fia.size() << endl;
    for(int i = 0; i < mekk.size(); i++){
        cout << mekk[i]+1 << " ";
    }
    cout << endl;
    for(int i = 0; i < fia.size(); i++){
        cout << fia[i]+1 << " ";
    }
    cout << endl;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms500 KiB
2Accepted0/08ms320 KiB
3Accepted1/11ms320 KiB
4Accepted1/11ms508 KiB
5Accepted2/21ms320 KiB
6Accepted2/21ms320 KiB
7Accepted2/21ms320 KiB
8Accepted2/21ms320 KiB
9Accepted3/31ms320 KiB
10Accepted1/12ms320 KiB
11Accepted1/12ms348 KiB
12Accepted2/22ms320 KiB
13Accepted2/22ms416 KiB
14Accepted2/22ms320 KiB
15Accepted2/22ms320 KiB
16Accepted3/31ms412 KiB
17Accepted2/282ms1592 KiB
18Accepted2/282ms1592 KiB
19Accepted4/482ms1588 KiB
20Accepted4/482ms1592 KiB
21Accepted4/482ms1592 KiB
22Accepted4/483ms1772 KiB
23Accepted4/490ms2272 KiB