178842025-09-22 16:24:22algoproMekk Mester munkái (50 pont)cpp17Elfogadva 50/5050ms2728 KiB
// UUID: 6a47a125-0278-4166-83b6-21840ced5dfd
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int N, H;
    if (!(cin >> N >> H)) return 0;

    vector<tuple<int,int,int>> jobs; // (end, start, id)
    vector<int> start(N+1);
    for (int i = 1; i <= N; ++i) {
        int k, v; cin >> k >> v;
        jobs.emplace_back(v, k, i);
        start[i] = k;
    }

    sort(jobs.begin(), jobs.end()); // rendezés befejezés szerint

    const int K = 2;
    set<pair<int,int>> S; // (last_end, worker_id)
    int used = 0;
    vector<vector<int>> assigned(K);

    for (auto &t : jobs) {
        int e = get<0>(t), s = get<1>(t), id = get<2>(t);
        // keresés: legnagyobb end < s
        auto it = S.lower_bound({s, -1}); // első olyan, aminek end >= s
        if (it != S.begin()) {
            --it; // most it->first < s és ez a legnagyobb ilyen
            int wid = it->second;
            S.erase(it);
            S.insert({e, wid});
            assigned[wid].push_back(id);
        } else if ((int)S.size() < K) {
            int wid = used++;
            S.insert({e, wid});
            assigned[wid].push_back(id);
        } else {
            // nem fér el, kihagyjuk
        }
    }

    // időrendi (kezdési idő) sorrend a kimenethez
    for (int w = 0; w < K; ++w) {
        sort(assigned[w].begin(), assigned[w].end(),
             [&](int a, int b){ return start[a] < start[b]; });
    }

    cout << assigned[0].size() << " " << assigned[1].size() << "\n";
    for (int x : assigned[0]) cout << x << " ";
    cout << "\n";
    for (int x : assigned[1]) cout << x << " ";
    cout << "\n";

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/04ms564 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva3/31ms500 KiB
10Elfogadva1/11ms316 KiB
11Elfogadva1/11ms508 KiB
12Elfogadva2/21ms316 KiB
13Elfogadva2/21ms316 KiB
14Elfogadva2/21ms316 KiB
15Elfogadva2/21ms316 KiB
16Elfogadva3/31ms316 KiB
17Elfogadva2/237ms2460 KiB
18Elfogadva2/237ms2412 KiB
19Elfogadva4/439ms2308 KiB
20Elfogadva4/439ms2444 KiB
21Elfogadva4/439ms2476 KiB
22Elfogadva4/441ms2500 KiB
23Elfogadva4/450ms2728 KiB