125582024-12-22 22:01:17BucsMateMekk Mester munkái (50 pont)cpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms500 KiB
2Elfogadva0/08ms320 KiB
3Elfogadva1/11ms320 KiB
4Elfogadva1/11ms508 KiB
5Elfogadva2/21ms320 KiB
6Elfogadva2/21ms320 KiB
7Elfogadva2/21ms320 KiB
8Elfogadva2/21ms320 KiB
9Elfogadva3/31ms320 KiB
10Elfogadva1/12ms320 KiB
11Elfogadva1/12ms348 KiB
12Elfogadva2/22ms320 KiB
13Elfogadva2/22ms416 KiB
14Elfogadva2/22ms320 KiB
15Elfogadva2/22ms320 KiB
16Elfogadva3/31ms412 KiB
17Elfogadva2/282ms1592 KiB
18Elfogadva2/282ms1592 KiB
19Elfogadva4/482ms1588 KiB
20Elfogadva4/482ms1592 KiB
21Elfogadva4/482ms1592 KiB
22Elfogadva4/483ms1772 KiB
23Elfogadva4/490ms2272 KiB