125592024-12-22 22:03:33BucsMateMekk Mester munkái (50 pont)cpp17Hibás válasz 1/5090ms2276 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
base1/50
1Elfogadva0/01ms320 KiB
2Hibás válasz0/08ms320 KiB
3Elfogadva1/11ms320 KiB
4Hibás válasz0/11ms320 KiB
5Hibás válasz0/21ms320 KiB
6Hibás válasz0/21ms360 KiB
7Hibás válasz0/21ms320 KiB
8Hibás válasz0/21ms320 KiB
9Hibás válasz0/31ms320 KiB
10Hibás válasz0/12ms556 KiB
11Hibás válasz0/12ms320 KiB
12Hibás válasz0/22ms320 KiB
13Hibás válasz0/22ms320 KiB
14Hibás válasz0/22ms320 KiB
15Hibás válasz0/22ms508 KiB
16Hibás válasz0/31ms320 KiB
17Hibás válasz0/282ms1596 KiB
18Hibás válasz0/283ms1584 KiB
19Hibás válasz0/482ms1584 KiB
20Hibás válasz0/483ms1592 KiB
21Hibás válasz0/483ms1600 KiB
22Hibás válasz0/483ms1592 KiB
23Hibás válasz0/490ms2276 KiB