198762025-12-28 13:28:37hunzombiTestnevelés óracpp17Elfogadva 50/50237ms19264 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, k;
    cin >> n >> k;

    vector<vector<int>> graph(n + 1), layers(n + 1);
    vector<int> deg(n+1);

    for (int i=0; i < k; i++) {
        int u, v;
        cin >> u >> v;
        graph[u].push_back(v);
        deg[v]++;
    }

    queue<int> q;
    for (int i=1; i <= n; i++) {
        if (deg[i] == 0) {
            q.push(i);
        }
    }

    int layer = 0;
    int res = 1;
    int rem = n;
    while (!q.empty() && rem > 0) {
        queue<int> temp;
        while (!temp.empty()) {
            temp.pop();
        }
        layer++;
        res *= q.size();
        rem -= q.size();

        while (!q.empty()) {
            int node = q.front();
            layers[layer].push_back(node);
            q.pop();

            for (int next : graph[node]) {
                if (--deg[next] == 0) {
                    temp.push(next);
                }
            }
        }
        q = temp;
    }

    if (rem > 0) {
        cout << 0 << '\n';
        return 0;
    } else {
        if (res == 1) {
            cout << 1 << '\n';
            for (int i=1; i <= n; i++) {
                cout << layers[i][0] << ' ';
            }
        } else {
            cout << 2 << '\n';
            int more = -1;
            for (int i=1; i <= n; i++) {
                for (int j = 0; j < layers[i].size(); j++) {
                    cout << layers[i][j] << ' ';
                }
                if (layers[i].size() > 1) {
                    more = i;
                }
            }
            cout << '\n';
            swap(layers[more][0], layers[more][1]);
            for (int i=1; i <= n; i++) {
                for (int j = 0; j < layers[i].size(); j++) {
                    cout << layers[i][j] << ' ';
                }
            }
        }
    }


    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms512 KiB
2Elfogadva0/01ms508 KiB
3Elfogadva0/0189ms9524 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms508 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/33ms316 KiB
11Elfogadva3/33ms316 KiB
12Elfogadva1/13ms316 KiB
13Elfogadva2/23ms316 KiB
14Elfogadva3/32ms316 KiB
15Elfogadva1/1175ms6648 KiB
16Elfogadva3/3143ms12820 KiB
17Elfogadva5/552ms14704 KiB
18Elfogadva1/1237ms18476 KiB
19Elfogadva2/2177ms7220 KiB
20Elfogadva3/3219ms19252 KiB
21Elfogadva4/4217ms19228 KiB
22Elfogadva4/4219ms19264 KiB