10208 2024. 03. 29 14:14:29 Vargus A lehető legkevesebb átszállás (50 pont) cpp17 Elfogadva 50/50 9ms 5220 KiB
#include <iostream>
#include <queue>
#define ll long long

using namespace std;

int main()
{
    ll n, m;
    cin >> n >> m;
    vector <ll> a(n + 1), b(n + 1);
    vector <ll> poz;
    for (ll i = 1; i <= n; ++i)
    {
        cin >> a[i] >> b[i];
    }

    ll i = 1, veg = 1;
    while (veg < m)
    {
        ll akt = -1;
        while (i <= n && a[i] <= veg)
        {
            if (akt == -1 || b[i] > b[akt])
            {
                akt = i;
            }
            ++i;
        }
        if (akt == -1)
        {
            cout << "-1";
            return 0;
        }
        else
        {
            veg = b[akt];
            poz.push_back(akt);
        }
    }
    cout << poz.size() - 1 << endl;
    for (auto& e : poz)
        cout << e << " ";

    return 0;
}
/*
6 9
1 4
1 6
2 6
3 4
6 8
7 9
*/
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1816 KiB
2 Elfogadva 0/0 9ms 2340 KiB
3 Elfogadva 1/1 3ms 2264 KiB
4 Elfogadva 1/1 3ms 2472 KiB
5 Elfogadva 2/2 3ms 2724 KiB
6 Elfogadva 2/2 3ms 2916 KiB
7 Elfogadva 2/2 3ms 3144 KiB
8 Elfogadva 2/2 4ms 3352 KiB
9 Elfogadva 2/2 4ms 3572 KiB
10 Elfogadva 2/2 4ms 3652 KiB
11 Elfogadva 2/2 4ms 3988 KiB
12 Elfogadva 2/2 6ms 4248 KiB
13 Elfogadva 2/2 3ms 4272 KiB
14 Elfogadva 2/2 4ms 4516 KiB
15 Elfogadva 2/2 4ms 4596 KiB
16 Elfogadva 2/2 6ms 4624 KiB
17 Elfogadva 2/2 7ms 4656 KiB
18 Elfogadva 2/2 8ms 4796 KiB
19 Elfogadva 2/2 8ms 4928 KiB
20 Elfogadva 2/2 8ms 4928 KiB
21 Elfogadva 2/2 8ms 5060 KiB
22 Elfogadva 2/2 9ms 5048 KiB
23 Elfogadva 2/2 8ms 4928 KiB
24 Elfogadva 2/2 8ms 4932 KiB
25 Elfogadva 2/2 8ms 5072 KiB
26 Elfogadva 2/2 8ms 4928 KiB
27 Elfogadva 2/2 8ms 4940 KiB
28 Elfogadva 2/2 8ms 5220 KiB