179622025-09-24 17:37:01algoproTestnevelés óracpp17Elfogadva 50/50119ms13348 KiB
// UUID: 9bd680a1-9a94-49cf-8fe6-57699ae23a32
#include <bits/stdc++.h>
using namespace std;

void solve() {
    int v, e;
    cin >> v >> e;

    vector<int> res;
    vector<vector<int>> adj(v + 1);
    vector<int> ind(v + 1, 0);
    int k = -1;

    for (int i = 0; i < e; i++) {
        int a, b;
        cin >> a >> b;
        adj[a].push_back(b);
        ind[b]++;
    }

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

    while (!q.empty()) {
        if (q.size() > 1) k = res.size();

        int curr = q.front();
        q.pop();
        res.push_back(curr);

        for (int i : adj[curr]) {
            ind[i]--;
            if (ind[i] == 0) q.push(i);
        }
    }

    if (res.size() != v) {
        cout << 0;
        return;
    }

    if (k == -1) {
        cout << 1 << "\n";
        for (int i : res) cout << i << ' ';
    } else {
        cout << 2 << "\n";
        for (int i : res) cout << i << ' ';
        swap(res[k], res[k+1]);
        for (int i : res) cout << i << ' ';
    }

    return;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    //cin >> t;

    while (t--) {
        solve();
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms508 KiB
3Elfogadva0/090ms7340 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/32ms316 KiB
11Elfogadva3/32ms316 KiB
12Elfogadva1/12ms468 KiB
13Elfogadva2/22ms380 KiB
14Elfogadva3/31ms316 KiB
15Elfogadva1/170ms4512 KiB
16Elfogadva3/381ms9900 KiB
17Elfogadva5/535ms10024 KiB
18Elfogadva1/1119ms13348 KiB
19Elfogadva2/265ms4616 KiB
20Elfogadva3/3101ms11704 KiB
21Elfogadva4/4119ms11856 KiB
22Elfogadva4/4107ms11688 KiB