69362023-12-20 18:54:06MagyarKendeSZLGA lehető legkevesebb átszállás (50 pont)cpp17Elfogadva 50/504ms4836 KiB
#include <iostream>
#include <vector>
#include <array>
#include <queue>

using namespace std;

using Pair = array<int, 2>;

void init() {
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios::sync_with_stdio(0);
}

int main() {
    init();

    int N, M;
    cin >> N >> M;

    vector<Pair> TS(N + 1);
    for (int i = 1; i <= N; i++) {
        cin >> TS[i][0] >> TS[i][1];
    }

    vector<int> path;
    int i = 1, pos = 1, curr;

    while (pos < M) {
        curr = -1;

        while (i <= N && TS[i][0] <= pos) {
            if (curr == -1 || TS[curr][1] < TS[i][1]) curr = i;
            i++;
        }

        if (curr == -1) { // impossible part
            cout << -1;
            exit(0);
        }

        pos = TS[curr][1];
        path.push_back(curr);
    }

    cout << path.size() - 1 << '\n';
    for (int n : path)  {
        cout << n << ' ';
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms2108 KiB
2Elfogadva0/04ms2348 KiB
3Elfogadva1/13ms2192 KiB
4Elfogadva1/13ms2240 KiB
5Elfogadva2/23ms2480 KiB
6Elfogadva2/23ms2684 KiB
7Elfogadva2/23ms2804 KiB
8Elfogadva2/23ms2764 KiB
9Elfogadva2/23ms3028 KiB
10Elfogadva2/23ms2980 KiB
11Elfogadva2/23ms2984 KiB
12Elfogadva2/24ms3144 KiB
13Elfogadva2/23ms2960 KiB
14Elfogadva2/23ms3060 KiB
15Elfogadva2/23ms3236 KiB
16Elfogadva2/24ms3324 KiB
17Elfogadva2/24ms3612 KiB
18Elfogadva2/24ms3368 KiB
19Elfogadva2/24ms3640 KiB
20Elfogadva2/24ms3856 KiB
21Elfogadva2/24ms3944 KiB
22Elfogadva2/24ms4224 KiB
23Elfogadva2/24ms4164 KiB
24Elfogadva2/24ms4184 KiB
25Elfogadva2/24ms4412 KiB
26Elfogadva2/24ms4624 KiB
27Elfogadva2/24ms4836 KiB
28Elfogadva2/24ms4796 KiB