208442026-01-09 20:07:47hunzombiA lehető legkevesebb átszállás (50 pont)cpp17Hibás válasz 23/5050ms32000 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m;

int main()
{
    cin >> m >> n;
    vector<pair<int, int>> vec;
    for (int i=0; i < m; i++) {
        int u, v;
        cin >> u >> v;
        vec.push_back({u, v});
    }
    sort(vec.begin(), vec.end());
    int k = 1;
    int high = 1;
    int idx = -1;
    vector<int> res;
    for (int i=0; i < vec.size(); i++) {
        if (vec[i].first <= k) {
            if (vec[i].second > high) {
                high = vec[i].second;
                idx = i + 1;
            }
        } else {
            k = high;
            res.push_back(idx);
            i--;
        }
    }
    if (k != n) {
        cout << -1;
        return 0;
    }
    cout << res.size() - 1 << '\n';
    for (int x : res) cout << x << ' ';
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base23/50
1Elfogadva0/01ms508 KiB
2Hibás válasz0/08ms564 KiB
3Elfogadva1/11ms316 KiB
4Futási hiba0/150ms32000 KiB
5Részben helyes1/21ms316 KiB
6Hibás válasz0/21ms500 KiB
7Részben helyes1/22ms316 KiB
8Elfogadva2/22ms316 KiB
9Részben helyes1/22ms316 KiB
10Részben helyes1/23ms316 KiB
11Részben helyes1/23ms316 KiB
12Részben helyes1/24ms656 KiB
13Részben helyes1/22ms316 KiB
14Részben helyes1/22ms316 KiB
15Részben helyes1/23ms508 KiB
16Részben helyes1/24ms316 KiB
17Részben helyes1/26ms316 KiB
18Részben helyes1/26ms452 KiB
19Részben helyes1/27ms504 KiB
20Részben helyes1/27ms564 KiB
21Részben helyes1/28ms528 KiB
22Részben helyes1/28ms464 KiB
23Hibás válasz0/27ms452 KiB
24Hibás válasz0/27ms456 KiB
25Elfogadva2/28ms508 KiB
26Hibás válasz0/27ms508 KiB
27Hibás válasz0/27ms508 KiB
28Elfogadva2/27ms468 KiB