178852025-09-22 16:29:10algoproMekk Mester munkái (50 pont)cpp17Elfogadva 50/5043ms2240 KiB
// UUID: 08524408-c9c9-4336-9edf-a3a406ffe1a6
#include <bits/stdc++.h>
using namespace std;

struct Job {
    int k, v, id;
};

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N, H;
    cin >> N >> H;
    vector<Job> jobs(N);
    for (int i=0;i<N;i++) {
        cin >> jobs[i].k >> jobs[i].v;
        jobs[i].id = i+1;
    }

    sort(jobs.begin(), jobs.end(), [](auto &a, auto &b){
        if (a.v == b.v) return a.k < b.k;
        return a.v < b.v;
    });

    int end1 = 0, end2 = 0;
    vector<int> mester, fiu;

    for (auto &job : jobs) {
        int s = job.k, e = job.v, id = job.id;
        if (s > end1 && s > end2) {
            // mindkettőhöz jó, annak adjuk aki később végzett
            if (end1 > end2) {
                mester.push_back(id);
                end1 = e;
            } else {
                fiu.push_back(id);
                end2 = e;
            }
        } else if (s > end1) {
            mester.push_back(id);
            end1 = e;
        } else if (s > end2) {
            fiu.push_back(id);
            end2 = e;
        }
    }

    cout << mester.size() << " " << fiu.size() << "\n";
    for (int x : mester) cout << x << " ";
    cout << "\n";
    for (int x : fiu) cout << x << " ";
    cout << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/04ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms508 KiB
7Elfogadva2/21ms368 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva1/11ms316 KiB
11Elfogadva1/11ms316 KiB
12Elfogadva2/21ms316 KiB
13Elfogadva2/21ms348 KiB
14Elfogadva2/21ms316 KiB
15Elfogadva2/21ms316 KiB
16Elfogadva3/31ms316 KiB
17Elfogadva2/235ms1604 KiB
18Elfogadva2/235ms1588 KiB
19Elfogadva4/435ms1608 KiB
20Elfogadva4/437ms1600 KiB
21Elfogadva4/437ms1588 KiB
22Elfogadva4/437ms2036 KiB
23Elfogadva4/443ms2240 KiB