179062025-09-22 18:06:57algoproTestnevelés óracpp17Elfogadva 50/50368ms45224 KiB
// UUID: 9af73f28-109d-4f76-b0d3-b2bbc197a564
#include <bits/stdc++.h>
using ll = long long;
using namespace std;

vector<int> r;
map<int, bool> m;
bool cannot = false;

void dfs(vector<vector<int>>& g, vector<bool>& vis, int cur) {
    vis[cur] = true;
    for (auto& e : g[cur]) {
        if (!vis[e]) {
            dfs(g, vis, e);
        } else {
            if (!m[e]) {
                cannot = true;
            }
        }
    }
    r.push_back(cur);
    m[cur] = 1;
}

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int n, k; cin >> n >> k;
    vector<vector<int>> g(n);
    vector<set<int>> adj(n);
    for (int i = 0; i < k; i++) {
        int a, b; cin >> a >> b;
        a--; b--;
        g[a].push_back(b);
        adj[a].insert(b);
    }

    vector<bool> vis(n);
    for (int i = 0; i < n; i++) {
        if (!vis[i]) {
            dfs(g, vis, i);
        }
    }

    if (cannot) {
        cout << "0\n"; return 0;
    }

    int swappable = -1;
    for (int i = 1; i < r.size(); i++) {
        if (adj[r[i]].find(r[i-1]) == adj[r[i]].end()) {
            swappable = i;
        }
    }

    if (swappable == -1) {
        cout << "1\n";
    } else {
        cout << "2\n";
    }

    for (int i = r.size()-1; i >= 0; i--) {
        cout << r[i]+1 << " ";
    }

    if (swappable != -1) {
        int helper = r[swappable-1];
        r[swappable-1] = r[swappable];
        r[swappable] = helper;
        cout << "\n";
        for (int i = r.size()-1; i >= 0; i--) {
            cout << r[i]+1 << " ";
        }
    }
	
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/0321ms25256 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva1/11ms512 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/33ms568 KiB
11Elfogadva3/33ms564 KiB
12Elfogadva1/13ms756 KiB
13Elfogadva2/23ms568 KiB
14Elfogadva3/32ms756 KiB
15Elfogadva1/1212ms18372 KiB
16Elfogadva3/3206ms26956 KiB
17Elfogadva5/5116ms27128 KiB
18Elfogadva1/1368ms40228 KiB
19Elfogadva2/2261ms18656 KiB
20Elfogadva3/3300ms39080 KiB
21Elfogadva4/4254ms45224 KiB
22Elfogadva4/4245ms41640 KiB