230902026-01-16 11:53:01helloworldMekk Mester munkái (50 pont)cpp17Hibás válasz 0/5086ms1748 KiB
#include <iostream>
#include <algorithm>
using namespace std;

int N, M;

struct Munka {
    int a, b, id;
};

Munka m[100000];

int id_A[100000];
int id_B[100000];
int dbA = 0, dbB = 0;

int main()
{
    cin >> N >> M;

    for(int i = 0; i < N; i++){
        cin >> m[i].a >> m[i].b;
        m[i].id = i + 1;
    }

    // végidő szerint rendezünk
    sort(m, m + N, [](Munka x, Munka y){
        return x.b < y.b;
    });

    int vegeA = 0, vegeB = 0;

    for(int i = 0; i < N; i++){
        int a = m[i].a;
        int b = m[i].b;

        // mindig az legyen A, aki előbb felszabadul
        if(vegeA > vegeB){
            swap(vegeA, vegeB);
            swap(dbA, dbB);
        }

        if(a >= vegeA){
            id_A[dbA++] = m[i].id;
            vegeA = b;
        }
        else if(a >= vegeB){
            id_B[dbB++] = m[i].id;
            vegeB = b;
        }
    }

    cout << dbA << " " << dbB << "\n";

    for(int i = 0; i < dbA; i++){
        cout << id_A[i] << " ";
    }
    cout << "\n";

    for(int i = 0; i < dbB; i++){
        cout << id_B[i] << " ";
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/07ms316 KiB
3Hibás válasz0/11ms316 KiB
4Hibás válasz0/11ms316 KiB
5Hibás válasz0/21ms316 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/31ms500 KiB
10Hibás válasz0/11ms316 KiB
11Hibás válasz0/12ms508 KiB
12Hibás válasz0/22ms316 KiB
13Hibás válasz0/22ms316 KiB
14Hibás válasz0/21ms392 KiB
15Hibás válasz0/22ms316 KiB
16Hibás válasz0/31ms316 KiB
17Hibás válasz0/276ms1504 KiB
18Hibás válasz0/276ms1344 KiB
19Hibás válasz0/476ms1472 KiB
20Hibás válasz0/476ms1588 KiB
21Hibás válasz0/478ms1600 KiB
22Hibás válasz0/479ms1644 KiB
23Hibás válasz0/486ms1748 KiB