136292025-01-08 11:39:28csdavidA lehető legkevesebb átszállás (50 pont)cpp17Elfogadva 50/508ms552 KiB
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;

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

bool alma(vonat x, vonat y){
    if(x.veg==y.veg){
        return x.kezd>y.kezd;
    }
    else{
        return x.veg>y.veg;
    }
}

int main()
{
    queue<int> q;
    int n, m;
    cin >> n >> m;
    vonat a[n];
    for(int i=0; i<n; i++){
        cin >> a[i].kezd >> a[i].veg;
        a[i].ind=i+1;
    }
    sort(a, a+n, alma);
    int hely=1;
    int i=0;
    while(hely<m){
        i=0;
        while(a[i].kezd>hely&&i<n){
            i++;
        }
        if(i==n){
            cout << -1 << '\n';
            return 0;
        }
        hely=a[i].veg;
        q.push(a[i].ind);
        if(q.size()>10000){
            cout << -1 << '\n';
            return 0;
        }
    }
    cout << q.size()-1 << '\n';
    while(!q.empty()){
        cout << q.front() << ' ';
        q.pop();
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/08ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva2/21ms372 KiB
6Elfogadva2/21ms552 KiB
7Elfogadva2/22ms316 KiB
8Elfogadva2/22ms320 KiB
9Elfogadva2/22ms316 KiB
10Elfogadva2/23ms316 KiB
11Elfogadva2/24ms500 KiB
12Elfogadva2/24ms316 KiB
13Elfogadva2/22ms316 KiB
14Elfogadva2/22ms316 KiB
15Elfogadva2/23ms316 KiB
16Elfogadva2/24ms500 KiB
17Elfogadva2/27ms416 KiB
18Elfogadva2/27ms548 KiB
19Elfogadva2/28ms316 KiB
20Elfogadva2/28ms472 KiB
21Elfogadva2/28ms508 KiB
22Elfogadva2/28ms516 KiB
23Elfogadva2/28ms508 KiB
24Elfogadva2/28ms484 KiB
25Elfogadva2/28ms444 KiB
26Elfogadva2/28ms488 KiB
27Elfogadva2/28ms512 KiB
28Elfogadva2/28ms316 KiB