214002026-01-13 07:21:15szjA lehető legkevesebb átszállás (50 pont)cpp17Elfogadva 50/508ms1196 KiB
#include <bits/stdc++.h>
using namespace std;
struct csucsu
{
    int cs=-1, szam=-1;
}ma;
int main()
{
    int m, n, i, a, b, curr;
    cin >> n >> m;
    vector<csucsu> vec(m);
    vector<int> veg;
    for(i=0; i<n; i++)
    {
        cin >> a >> b;
        if(a<b && vec[a-1].cs<b-1)
        {
            vec[a-1].cs=b-1;
            vec[a-1].szam=i+1;
        }
        else if(b>a && vec[b-1].cs<a-1)
        {
            vec[b-1].cs=a-1;
            vec[b-1].szam=i+1;
        }
    }
    curr=vec[0].cs;
    veg.push_back(vec[0].szam);
    for(i=0; i<m; i++)
    {
        if(vec[i].cs>ma.cs)ma=vec[i];
        if(i==curr)
        {
            veg.push_back(ma.szam);
            curr=ma.cs;
            ma={0, 0};
        }
        if(curr==m-1)break;
    }
    if(curr!=m-1)
    {
        cout <<-1;
        return 0;
    }
    cout << veg.size()-1 << endl;
    sort(veg.begin(),veg.end());
    for(auto i: veg)cout << i << " ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/08ms1076 KiB
3Elfogadva1/11ms508 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva2/21ms576 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva2/23ms512 KiB
10Elfogadva2/23ms316 KiB
11Elfogadva2/24ms564 KiB
12Elfogadva2/24ms564 KiB
13Elfogadva2/22ms564 KiB
14Elfogadva2/23ms564 KiB
15Elfogadva2/23ms564 KiB
16Elfogadva2/24ms564 KiB
17Elfogadva2/26ms900 KiB
18Elfogadva2/28ms1092 KiB
19Elfogadva2/28ms1076 KiB
20Elfogadva2/28ms1076 KiB
21Elfogadva2/28ms1092 KiB
22Elfogadva2/28ms1076 KiB
23Elfogadva2/28ms964 KiB
24Elfogadva2/28ms1056 KiB
25Elfogadva2/28ms1080 KiB
26Elfogadva2/28ms1076 KiB
27Elfogadva2/28ms1196 KiB
28Elfogadva2/28ms1076 KiB