124852024-12-19 08:43:24feheristvanA lehető legkevesebb átszállás (50 pont)cpp17Hibás válasz 6/508ms520 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct vonat{
    int veg, kezd, ind;
};

int main(){
    vector <vonat> trains;
    vector <int> selected_trains;
    int n, m;
    cin >> n >> m;
    trains.resize(n);
    for(int i = 0 ; i < n; i ++){
        cin >> trains[i].kezd >> trains[i].veg;
        trains[i].ind = i;
    }
    int current_end = 0, farthest = 0, indx = 0;
    while(current_end < m){
        current_end = trains[indx].veg;
        while(indx < n and trains[indx].kezd <= current_end){
            farthest = max(trains[indx].veg, farthest);
            indx ++;
        }
        if(farthest < current_end){
            cout << "-1";
            return 0;
        }
        current_end = farthest;
        selected_trains.push_back(trains[indx - 1].ind);
    }
    cout << selected_trains.size() - 1 << endl;
    for(auto i : selected_trains)
        cout << i << " ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/01ms320 KiB
2Hibás válasz0/08ms320 KiB
3Elfogadva1/11ms320 KiB
4Hibás válasz0/11ms320 KiB
5Elfogadva2/21ms320 KiB
6Hibás válasz0/21ms320 KiB
7Hibás válasz0/21ms412 KiB
8Hibás válasz0/22ms516 KiB
9Hibás válasz0/22ms508 KiB
10Hibás válasz0/23ms320 KiB
11Hibás válasz0/23ms320 KiB
12Hibás válasz0/24ms368 KiB
13Hibás válasz0/22ms320 KiB
14Hibás válasz0/22ms424 KiB
15Hibás válasz0/23ms380 KiB
16Hibás válasz0/24ms320 KiB
17Hibás válasz0/24ms320 KiB
18Hibás válasz0/26ms496 KiB
19Hibás válasz0/26ms500 KiB
20Hibás válasz0/27ms320 KiB
21Hibás válasz0/27ms320 KiB
22Hibás válasz0/27ms520 KiB
23Részben helyes1/27ms520 KiB
24Részben helyes1/27ms520 KiB
25Hibás válasz0/27ms396 KiB
26Részben helyes1/27ms320 KiB
27Hibás válasz0/27ms520 KiB
28Hibás válasz0/27ms516 KiB