105492024-04-05 09:23:43VargusTestnevelés óracpp17Hibás válasz 3/501.085s79076 KiB
#include <iostream>
#include <queue>
#include <algorithm>
#define ll long long

using namespace std;

struct adat
{
    bool lat, kilep;
    ll ido = 0;
    vector <ll> sz, ut;
};
vector <adat> x;

bool kor = false;
deque <ll> q;
void melyseg(ll csp)
{
    x[csp].lat = true;
    for (auto& e : x[csp].sz)
    {
        if (x[e].lat && !x[e].kilep)
        {
            kor = true;
        }
        if (!x[e].lat)
        {
            x[e].ido = 1 + x[csp].ido;
            q.push_front(e);
            melyseg(e);
        }
    }
    x[csp].kilep = true;
}

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].ut.push_back(cs1);
    }
    ll db = 0;
    for (ll i = 1; i <= n; ++i)
    {
        if (!x[i].ut.size())
        {
            ++db;
            q.push_back(i);
            melyseg(i);
            if (kor)
            {
                cout << "0";
                return 0;
            }
        }
    }   
    cout << db << "\n";
    for (ll j = q.size() - 1; j >= 0; --j)
        cout << q[j] << " ";
    for (ll i = q.size() - 1; i >= 1; --i)
    {
        if (x[q[i]].ido == x[q[i - 1]].ido)
        {
            swap(q[i], q[i - 1]);
            cout << "\n";
            for (ll j = q.size() - 1; j >= 0; --j)
                cout << q[j] << " ";
        }
    }
}
/*
5 3
2 1
3 2
1 5
*/
RészfeladatÖsszpontTesztVerdiktIdőMemória
base3/50
1Hibás válasz0/03ms1808 KiB
2Elfogadva0/03ms2004 KiB
3Időlimit túllépés0/01.011s17568 KiB
4Hibás válasz0/23ms4752 KiB
5Hibás válasz0/33ms4964 KiB
6Hibás válasz0/33ms5056 KiB
7Hibás válasz0/33ms5184 KiB
8Elfogadva1/13ms5404 KiB
9Hibás válasz0/33ms5548 KiB
10Hibás válasz0/312ms5880 KiB
11Hibás válasz0/321ms6188 KiB
12Elfogadva1/14ms6180 KiB
13Hibás válasz0/24ms6472 KiB
14Hibás válasz0/328ms6424 KiB
15Hibás válasz0/1206ms27780 KiB
16Időlimit túllépés0/31.085s24980 KiB
17Időlimit túllépés0/51.023s23460 KiB
18Időlimit túllépés0/11.019s34416 KiB
19Részben helyes1/2194ms35308 KiB
20Hibás válasz0/3215ms75468 KiB
21Hibás válasz0/4216ms77224 KiB
22Hibás válasz0/4238ms79076 KiB