7811 2024. 01. 11 10:51:33 csaron71 A lehető legkevesebb átszállás (50 pont) cpp17 Elfogadva 50/50 10ms 5000 KiB
#include <bits/stdc++.h>

using namespace std;


int main()
{
    int n, m;
    cin >> n >> m;
    vector<pair<int, pair<int, int> > > vasut;
    for (int i=0; i<n; i++) {
        int x, y;
        cin >> x >> y;
        x--;
        y--;
        if (x<y) {
            swap(x, y);
        }
        vasut.push_back({x, {y, i+1}});
    }
    sort(vasut.begin(), vasut.end());
    reverse(vasut.begin(), vasut.end());
    int epp=0;
    vector<int> utvonal;
    int valtozas=1;
    while (valtozas!=epp) {
        valtozas=epp;
        for (int j=0; j<n; j++) {
            if (vasut[j].second.first<=epp && vasut[j].first>epp) {
                epp=vasut[j].first;
                utvonal.push_back(vasut[j].second.second);
                break;
            }
        }
    }
    if (epp==m-1) {
        cout << utvonal.size()-1 << "\n";
        for (int sz : utvonal) {
            cout << sz << " ";
        }
    }
    else {
        cout << "-1";
    }


    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1816 KiB
2 Elfogadva 0/0 10ms 2588 KiB
3 Elfogadva 1/1 3ms 2308 KiB
4 Elfogadva 1/1 3ms 2520 KiB
5 Elfogadva 2/2 3ms 2668 KiB
6 Elfogadva 2/2 3ms 2760 KiB
7 Elfogadva 2/2 3ms 2744 KiB
8 Elfogadva 2/2 4ms 3020 KiB
9 Elfogadva 2/2 4ms 3172 KiB
10 Elfogadva 2/2 4ms 3164 KiB
11 Elfogadva 2/2 6ms 3472 KiB
12 Elfogadva 2/2 6ms 3796 KiB
13 Elfogadva 2/2 3ms 3644 KiB
14 Elfogadva 2/2 4ms 4012 KiB
15 Elfogadva 2/2 4ms 4008 KiB
16 Elfogadva 2/2 6ms 4332 KiB
17 Elfogadva 2/2 8ms 4336 KiB
18 Elfogadva 2/2 8ms 4348 KiB
19 Elfogadva 2/2 9ms 4680 KiB
20 Elfogadva 2/2 9ms 4660 KiB
21 Elfogadva 2/2 10ms 4700 KiB
22 Elfogadva 2/2 10ms 4696 KiB
23 Elfogadva 2/2 9ms 4696 KiB
24 Elfogadva 2/2 9ms 4748 KiB
25 Elfogadva 2/2 9ms 4700 KiB
26 Elfogadva 2/2 9ms 4744 KiB
27 Elfogadva 2/2 9ms 4876 KiB
28 Elfogadva 2/2 9ms 5000 KiB