130712025-01-05 15:15:44PallanekPéterA lehető legkevesebb átszállás (50 pont)cpp17Hibás válasz 33/508ms524 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;

    vector<array<int,3>> vonatok(n);
    for (int i = 0; i < n; i++) {
        int a, b;
        cin >> vonatok[i][0] >> vonatok[i][1];
        vonatok[i][2]=i+1;
    }

    sort(vonatok.begin(), vonatok.end());

    int j = 1, mx = 0, ats = 0;
    vector<int> utvonal;
    int i = 0;

    while (j <= m) {
        bool talalt = false;
        int legjobb_vonat = -1;

        while (i < n && get<0>(vonatok[i]) <= j) {
            if (get<1>(vonatok[i]) > mx) {
                mx = get<1>(vonatok[i]);
                legjobb_vonat = get<2>(vonatok[i]);
                talalt = true;
            }
            i++;
        }

        if (!talalt) {
            cout << -1 << endl;
            return 0;
        }

        utvonal.push_back(legjobb_vonat);
        j = mx + 1;
    }
    
    cout << utvonal.size()-1 << endl;
    for (int i : utvonal) {
        cout << i << " ";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base33/50
1Elfogadva0/01ms320 KiB
2Hibás válasz0/08ms508 KiB
3Elfogadva1/11ms320 KiB
4Elfogadva1/11ms336 KiB
5Elfogadva2/21ms320 KiB
6Hibás válasz0/21ms320 KiB
7Elfogadva2/21ms344 KiB
8Elfogadva2/22ms320 KiB
9Elfogadva2/22ms320 KiB
10Elfogadva2/23ms508 KiB
11Hibás válasz0/23ms320 KiB
12Részben helyes1/24ms320 KiB
13Részben helyes1/21ms320 KiB
14Részben helyes1/22ms428 KiB
15Elfogadva2/23ms320 KiB
16Részben helyes1/24ms348 KiB
17Részben helyes1/26ms320 KiB
18Hibás válasz0/26ms496 KiB
19Hibás válasz0/27ms500 KiB
20Részben helyes1/27ms512 KiB
21Részben helyes1/28ms520 KiB
22Hibás válasz0/27ms320 KiB
23Elfogadva2/27ms516 KiB
24Elfogadva2/27ms520 KiB
25Elfogadva2/27ms520 KiB
26Elfogadva2/27ms524 KiB
27Elfogadva2/27ms404 KiB
28Elfogadva2/27ms520 KiB