10141 2024. 03. 28 15:15:37 Vargus A lehető legkevesebb átszállás (50 pont) cpp17 Hibás válasz 6/50 8ms 5724 KiB
#include <iostream>
#include <queue>
#include <algorithm>
#define ll long long

using namespace std;

int main()
{
    ll n, m;
    cin >> n >> m;
    vector <ll> a(n + 1), b(n + 1);
    for (ll i = 1; i <= n; ++i)
    {
        cin >> a[i] >> b[i];
    }
    ll j = 1;
    deque <ll> res(1), poz;
    res[0] = 0;
    ll maxi = 1, db;
    b[0] = 999999;
    for (ll i = 1; i <= m; ++i)
    {
        db = 0;
        if (maxi > b[j])
        {
            ++j;
            continue;
        }
        while (a[j] == i && maxi <= b[j] && maxi >= a[j])
        {
            if (maxi == b[j])
            {
                break;
            }
            ++db;
            poz.push_front(j);
            res.push_front(b[j]);
            if (res.front() <= b[j])
            {
                if (maxi < b[j])
                    maxi = b[j];
            }
            if (maxi > b[j - 1] && db > 1)
            {
                poz.erase(poz.begin() + j - 1);
                res.erase(res.begin() + j - 1);
            }
            ++j;
        }

    }

    if (res.front() == m)
    {
        cout << poz.size() - 1 << endl;
        for (ll i = poz.size() - 1; i >= 0; --i)
        {
            cout << poz[i] << " ";
        }
    }
    else
        cout << "-1";

    return 0;
}
/*
6 9
1 2
1 4
2 6
3 4
4 5
7 9
*/
Részfeladat Összpont Teszt Verdikt Idő Memória
base 6/50
1 Elfogadva 0/0 3ms 1816 KiB
2 Hibás válasz 0/0 8ms 2440 KiB
3 Elfogadva 1/1 3ms 2500 KiB
4 Elfogadva 1/1 3ms 2576 KiB
5 Elfogadva 2/2 3ms 2816 KiB
6 Elfogadva 2/2 3ms 2836 KiB
7 Futási hiba 0/2 3ms 3028 KiB
8 Futási hiba 0/2 4ms 3168 KiB
9 Hibás válasz 0/2 4ms 3188 KiB
10 Hibás válasz 0/2 4ms 3480 KiB
11 Hibás válasz 0/2 4ms 3732 KiB
12 Futási hiba 0/2 6ms 3996 KiB
13 Futási hiba 0/2 3ms 3992 KiB
14 Hibás válasz 0/2 4ms 3772 KiB
15 Hibás válasz 0/2 4ms 3880 KiB
16 Hibás válasz 0/2 6ms 4336 KiB
17 Hibás válasz 0/2 7ms 4420 KiB
18 Hibás válasz 0/2 8ms 4540 KiB
19 Futási hiba 0/2 8ms 4684 KiB
20 Hibás válasz 0/2 8ms 4720 KiB
21 Hibás válasz 0/2 8ms 4940 KiB
22 Hibás válasz 0/2 8ms 5060 KiB
23 Hibás válasz 0/2 8ms 5172 KiB
24 Hibás válasz 0/2 8ms 5280 KiB
25 Hibás válasz 0/2 8ms 5392 KiB
26 Hibás válasz 0/2 8ms 5504 KiB
27 Hibás válasz 0/2 8ms 5616 KiB
28 Hibás válasz 0/2 8ms 5724 KiB