7960 2024. 01. 12 08:56:44 Boti A lehető legkevesebb átszállás (50 pont) cpp17 Elfogadva 50/50 12ms 5952 KiB
#include <bits/stdc++.h>

using namespace std;

int n, m;
vector<int> a;
vector<int> b;
vector<int> ut (0);
bool eljut = true;

void bejar(int c)
{
    int max = -1;
    for (int i = 0; i < n; i++)
    {
        if (a[i] <= c && b[i] > c && (max == -1 || b[max] < b[i]))
        {
            max = i;
        }
    }
    ut.push_back(max);
    if (max == -1)
    {
        eljut = false;
    }
    else if (b[max] != m)
    {
        bejar(b[max]);
    }
}

int main()
{
    cin >> n >> m;
    a.resize (n);
    b.resize (n);
    for (int i = 0; i < n; i++)
    {
        cin >> a[i] >> b[i];
    }
    bejar(1);
    if (eljut)
    {
        cout << ut.size() -1 << endl;
        for (int i = 0; i < ut.size(); i++)
        {
            cout << ut[i] +1 << " ";
        }
    }
    else
    {
        cout << -1;
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1876 KiB
2 Elfogadva 0/0 10ms 2480 KiB
3 Elfogadva 1/1 3ms 2568 KiB
4 Elfogadva 1/1 3ms 2644 KiB
5 Elfogadva 2/2 3ms 2732 KiB
6 Elfogadva 2/2 3ms 2844 KiB
7 Elfogadva 2/2 3ms 3116 KiB
8 Elfogadva 2/2 4ms 3264 KiB
9 Elfogadva 2/2 4ms 3528 KiB
10 Elfogadva 2/2 4ms 3676 KiB
11 Elfogadva 2/2 4ms 3676 KiB
12 Elfogadva 2/2 6ms 3728 KiB
13 Elfogadva 2/2 3ms 4024 KiB
14 Elfogadva 2/2 4ms 4020 KiB
15 Elfogadva 2/2 4ms 4256 KiB
16 Elfogadva 2/2 7ms 4368 KiB
17 Elfogadva 2/2 8ms 4588 KiB
18 Elfogadva 2/2 8ms 4680 KiB
19 Elfogadva 2/2 9ms 4596 KiB
20 Elfogadva 2/2 10ms 4736 KiB
21 Elfogadva 2/2 12ms 4912 KiB
22 Elfogadva 2/2 12ms 5020 KiB
23 Elfogadva 2/2 8ms 5136 KiB
24 Elfogadva 2/2 8ms 5332 KiB
25 Elfogadva 2/2 8ms 5504 KiB
26 Elfogadva 2/2 8ms 5568 KiB
27 Elfogadva 2/2 8ms 5864 KiB
28 Elfogadva 2/2 8ms 5952 KiB