129452025-01-03 19:05:46ercseferencA lehető legkevesebb átszállás (50 pont)cpp17Wrong answer 2/508ms836 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct vonat{int bem,kim,ind,rendi=0;};
int b[100001];
vector<vonat>a;
bool hasonl(vonat n, vonat m){
    if(n.bem==m.bem)
        return n.kim<m.kim;
    else return n.bem<m.bem;}
int main()
{
    int n,m;
    cin>>n>>m;
    a.resize(n+1);
    for(int i=1; i<=n; i++){cin>>a[i].bem>>a[i].kim; a[i].ind=i;}
    sort(a.begin(),a.end(),hasonl);
    b[1]=1;
    for(int i=2; i<=n; i++)
        {if(a[i].bem!=a[i-1].bem)b[a[i].bem]=i;}
    vector<int>l1,l2; bool nincs=0; bool van=0; int r=0;
    int p=1; while(a[p].bem==1){l1.push_back(p); p++;}
    int jos;
    while(nincs==0&&van==0){
        r++;
        for(int i=0; i<l1.size(); i++){
            if(b[a[l1[i]].kim]!=0){
                p=b[a[l1[i]].kim];
                while(a[p].bem==a[l1[i]].kim)
                    {l2.push_back(p); a[p].rendi=r; p++;}}}
        if(l2.size()==0)nincs=1;
        l1.clear();
        for(int i=0; i<l2.size(); i++){
            l1.push_back(l2[i]);
            if(a[l2[i]].kim==m){van=1; jos=l2[i]; }}
        l2.clear();}
    if(van==1){
        cout<<r<<endl;
        vector<int>megoldas;
        int q=jos-1;
        megoldas.push_back(a[jos].ind);
        r--;
        while(r!=-1){
            if(a[q].kim==a[jos].bem && a[q].rendi==r){
                r--; jos=q; megoldas.push_back(jos);}
            q--;}
        for(int i=megoldas.size()-1; i>=0; i--){cout<<megoldas[i]<<" ";}}
    else cout<<"-1";
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base2/50
1Accepted0/01ms320 KiB
2Wrong answer0/08ms824 KiB
3Accepted1/11ms320 KiB
4Accepted1/11ms320 KiB
5Wrong answer0/21ms320 KiB
6Wrong answer0/21ms320 KiB
7Wrong answer0/21ms320 KiB
8Wrong answer0/22ms320 KiB
9Wrong answer0/22ms320 KiB
10Wrong answer0/23ms320 KiB
11Wrong answer0/24ms472 KiB
12Wrong answer0/24ms492 KiB
13Wrong answer0/21ms320 KiB
14Wrong answer0/22ms568 KiB
15Wrong answer0/23ms568 KiB
16Wrong answer0/24ms568 KiB
17Wrong answer0/26ms776 KiB
18Wrong answer0/27ms792 KiB
19Wrong answer0/27ms820 KiB
20Wrong answer0/27ms824 KiB
21Wrong answer0/28ms836 KiB
22Wrong answer0/28ms836 KiB
23Wrong answer0/28ms580 KiB
24Wrong answer0/28ms584 KiB
25Wrong answer0/28ms568 KiB
26Wrong answer0/28ms568 KiB
27Wrong answer0/28ms756 KiB
28Wrong answer0/28ms568 KiB