10207 2024. 03. 29 13:47:35 Vargus A lehető legkevesebb átszállás (50 pont) cpp17 Hibás válasz 6/50 8ms 5128 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];
    }
    if (a[1] != 1)
    {
        cout << "-1";
        return 0;
    }
    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;
        }
        if (maxi == b[j])
        {
            if (j < n)
                ++j;
            continue;
        }
        while (a[j] == i && maxi <= b[j] && maxi >= a[j])
        {
            ++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 (j > n)
                break;
        }
        if (j > n)
            break;
    }

    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 4
1 6
2 6
3 4
6 9
7 9
*/
Részfeladat Összpont Teszt Verdikt Idő Memória
base 6/50
1 Elfogadva 0/0 3ms 1812 KiB
2 Hibás válasz 0/0 8ms 2344 KiB
3 Elfogadva 1/1 3ms 2264 KiB
4 Elfogadva 1/1 3ms 2484 KiB
5 Elfogadva 2/2 2ms 2592 KiB
6 Elfogadva 2/2 3ms 2540 KiB
7 Futási hiba 0/2 3ms 2592 KiB
8 Futási hiba 0/2 4ms 2856 KiB
9 Hibás válasz 0/2 4ms 3032 KiB
10 Hibás válasz 0/2 4ms 3392 KiB
11 Hibás válasz 0/2 4ms 3624 KiB
12 Futási hiba 0/2 6ms 4000 KiB
13 Futási hiba 0/2 3ms 4016 KiB
14 Hibás válasz 0/2 4ms 4136 KiB
15 Hibás válasz 0/2 4ms 4140 KiB
16 Hibás válasz 0/2 6ms 4428 KiB
17 Futási hiba 0/2 7ms 4592 KiB
18 Hibás válasz 0/2 8ms 4596 KiB
19 Futási hiba 0/2 8ms 4544 KiB
20 Hibás válasz 0/2 8ms 4572 KiB
21 Hibás válasz 0/2 8ms 4740 KiB
22 Hibás válasz 0/2 8ms 4828 KiB
23 Hibás válasz 0/2 8ms 4804 KiB
24 Hibás válasz 0/2 8ms 4804 KiB
25 Hibás válasz 0/2 8ms 4804 KiB
26 Hibás válasz 0/2 8ms 4804 KiB
27 Hibás válasz 0/2 8ms 4888 KiB
28 Hibás válasz 0/2 8ms 5128 KiB