208462026-01-09 20:19:47hunzombiA lehető legkevesebb átszállás (50 pont)cpp17Accepted 50/508ms724 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m;

int main()
{
    cin >> m >> n;
    vector<pair<int, int>> temp;
    for (int i=0; i < m; i++) {
        int u, v;
        cin >> u >> v;
        temp.push_back({u, v});
    }
    vector<pair<pair<int, int>, int>> vec;
    for (int i=0; i < m; i++) {
        vec.push_back({temp[i], i + 1});
    }

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

    int k = 1, i = 0;
    vector<int> ans;

    while (k < n) {
        int next = k;
        int idx = -1;

        while (i < m && vec[i].first.first <= k) {
            if (vec[i].first.second > next) {
                next = vec[i].first.second;
                idx = vec[i].second;
            }
            i++;
        }

        if (next == k) {
            cout << -1 << '\n';
            return 0;
        }

        ans.push_back(idx);
        k = next;
    }

    cout << ans.size() - 1 << '\n';
    for (int x : ans) cout << x << ' ';
    cout << '\n';

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms512 KiB
2Accepted0/08ms564 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Accepted2/21ms384 KiB
6Accepted2/22ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/22ms508 KiB
9Accepted2/22ms316 KiB
10Accepted2/23ms644 KiB
11Accepted2/24ms316 KiB
12Accepted2/24ms564 KiB
13Accepted2/22ms316 KiB
14Accepted2/22ms428 KiB
15Accepted2/23ms316 KiB
16Accepted2/24ms432 KiB
17Accepted2/26ms508 KiB
18Accepted2/26ms564 KiB
19Accepted2/28ms528 KiB
20Accepted2/27ms684 KiB
21Accepted2/28ms724 KiB
22Accepted2/28ms608 KiB
23Accepted2/28ms564 KiB
24Accepted2/28ms684 KiB
25Accepted2/28ms724 KiB
26Accepted2/28ms612 KiB
27Accepted2/28ms564 KiB
28Accepted2/28ms564 KiB