82702024-01-14 07:57:26MagyarKendeSZLGMekk Mester munkái (50 pont)cpp17Hibás válasz 0/5059ms9828 KiB
#include <bits/stdc++.h>
#define speed cin.tie(0); ios::sync_with_stdio(0)
using namespace std;

int main() {
    speed;

    int N, H;
    cin >> N >> H;

    priority_queue<array<int, 3>, vector<array<int, 3>>, greater<array<int, 3>>> pq;
    for (int i = 1; i <= N; i++) {
        int k, v;
        cin >> k >> v;
        pq.push({ v, k, i });
    }

    array<vector<array<int, 2>>, 2> workS;
    workS[0].push_back({ 0, 0 });
    workS[1].push_back({ 0, 0 });

    while (!pq.empty()) {
        auto [v, k, id] = pq.top(); pq.pop();
        int mn = 1e9, mni = -1;

        for (int i = 0; i < 2; i++) {
            int gap = k - workS[i].back()[0];
            if (gap < mn) {
                mn = gap;
                mni = i;
            }
        }

        if (mni != -1) {
            workS[mni].push_back({ v, id });
        }
    }

    cout << workS[0].size() - 1 << ' ' << workS[1].size() - 1 << '\n';

    for (int i = 0; i < 2; i++) {
        for (int j = 1; j < workS[i].size(); j++) {
            cout << workS[i][j][1] << ' ';
        }
        cout << '\n';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/03ms1832 KiB
2Hibás válasz0/07ms2724 KiB
3Hibás válasz0/12ms2136 KiB
4Hibás válasz0/13ms2324 KiB
5Hibás válasz0/23ms2600 KiB
6Hibás válasz0/23ms2720 KiB
7Hibás válasz0/23ms2776 KiB
8Hibás válasz0/23ms2996 KiB
9Hibás válasz0/33ms3208 KiB
10Hibás válasz0/13ms3476 KiB
11Hibás válasz0/13ms3656 KiB
12Hibás válasz0/23ms3612 KiB
13Hibás válasz0/23ms3936 KiB
14Hibás válasz0/23ms4144 KiB
15Hibás válasz0/23ms4100 KiB
16Hibás válasz0/33ms4104 KiB
17Hibás válasz0/259ms9828 KiB
18Hibás válasz0/257ms9816 KiB
19Hibás válasz0/457ms9804 KiB
20Hibás válasz0/457ms9804 KiB
21Hibás válasz0/457ms9824 KiB
22Hibás válasz0/457ms9800 KiB
23Hibás válasz0/457ms9800 KiB