10690 2024. 04. 09 15:24:39 Vargus Testnevelés óra cpp17 Hibás válasz 43/50 236ms 34372 KiB
#include <iostream>
#include <queue>
#include <algorithm>
#define ll long long

using namespace std;

struct adat
{
    bool lat = false;
    ll csop = 1, befok = 0;
    vector <ll> sz;
};
vector <adat> x;

deque <ll> v, poz;
bool kor = false;
void szelesseg(ll csp)
{
    v.push_front(csp);
    if(!x[csp].lat)
        poz.push_front(csp);
    while (!v.empty())
    {
        ll akt = v.front();
        v.pop_front();
        x[akt].lat = true;
        for (auto& e : x[akt].sz)
        {
            x[e].befok--;
            if (!x[e].befok)
            {
                v.push_front(e);
                x[e].csop = x[akt].csop + 1;
                poz.push_back(e);
            }
        }
    }
}

int main()
{
    ll n, k;
    cin >> n >> k;
    x.resize(n + 1);
    for (ll i = 1; i <= k; ++i)
    {
        ll cs1, cs2;
        cin >> cs1 >> cs2;
        x[cs1].sz.push_back(cs2);
        x[cs2].befok++;
    }

    for (ll i = 1; i <= n; ++i)
    {
        if (!x[i].befok)
        {
            szelesseg(i);
        }
    }
    if (poz.size() != n)
    {
        cout << "0";
        return 0;
    }
    else
    {
        for (ll i = 1; i < n; ++i)
        {
            if (x[poz[i - 1]].csop == x[poz[i]].csop)
            {
                cout << "2\n";
                for (auto& e : poz)
                    cout << e << " ";
                cout << endl;
                swap(poz[i], poz[i - 1]);
                for (auto& e : poz)
                    cout << e << " ";
                return 0;
            }
        }
        cout << "1\n";
        for (auto& e : poz)
            cout << e << " ";
    }

    return 0;
}
/*
5 9
3 1
3 5
3 4
4 2
3 2
1 4
1 2
1 5
5 4

5 3
2 1
3 2
1 5

4 4
1 2
2 3
3 4
4 2
*/
Részfeladat Összpont Teszt Verdikt Idő Memória
base 43/50
1 Elfogadva 0/0 3ms 1712 KiB
2 Elfogadva 0/0 3ms 2020 KiB
3 Hibás válasz 0/0 194ms 19420 KiB
4 Elfogadva 2/2 3ms 2296 KiB
5 Elfogadva 3/3 3ms 2376 KiB
6 Elfogadva 3/3 3ms 2380 KiB
7 Elfogadva 3/3 3ms 2600 KiB
8 Elfogadva 1/1 3ms 2592 KiB
9 Elfogadva 3/3 3ms 2724 KiB
10 Elfogadva 3/3 4ms 3140 KiB
11 Elfogadva 3/3 4ms 3116 KiB
12 Hibás válasz 0/1 4ms 3116 KiB
13 Elfogadva 2/2 4ms 3120 KiB
14 Hibás válasz 0/3 3ms 3096 KiB
15 Elfogadva 1/1 163ms 14620 KiB
16 Hibás válasz 0/3 150ms 24740 KiB
17 Elfogadva 5/5 67ms 25484 KiB
18 Elfogadva 1/1 236ms 34372 KiB
19 Elfogadva 2/2 167ms 15640 KiB
20 Elfogadva 3/3 202ms 29648 KiB
21 Elfogadva 4/4 187ms 29648 KiB
22 Elfogadva 4/4 207ms 29576 KiB