180602025-09-25 18:47:03algoproTestnevelés óracpp17Elfogadva 50/50219ms13352 KiB
// UUID: 0193f2a1-9898-4ee8-8101-b825c5c1ddfe
#include <bits/stdc++.h>
#include <queue>
#include <vector>
using namespace std;


int main() {
	int n, m; cin >> n >> m;
    vector<vector<int>> g(n+1, vector<int>());
    vector<int> fokszam(n+1, 0);
    vector<int> ans;
    for (int i=0;i<m;i++){
        int a, b; cin >> a >> b;
        g[a].push_back(b);
        fokszam[b]++;
    }
    queue<int> q;
    for (int i=0;i<=n;i++) {
        if (!fokszam[i]) {
            q.push(i);
        }
    } 
        // cout << fokszam[i];
    while (!q.empty()) {
        int u = q.front();
        q.pop();
        ans.push_back(u);
        for (int i: g[u]) {
            fokszam[i]--;
            if (!fokszam[i]){
                q.push(i);
            } 
        }

        // cout << u << '\n';
    }
    // for(int i: fokszam) {
    //     cout << i << '\n';
    // }
    if (ans.size()-1 != n) {     
        cout << 0;
        return 0;
    }
    pair<int, int> felcserel = {0, 0};
    for (int i=1;i<n;i++) {
            bool benne = false;
            for (int j: g[ans[i]]) {
                if (j == ans[i+1]) benne = 1; 
            } 
            if (!benne) {
                felcserel.first = ans[i];
                felcserel.second = ans[i+1];
                // cout << felcserel.first << ' ' << felcserel.second << "ab\n";
                break;
            }
        }
    cout << (felcserel.second ? 2: 1) << endl;
    for(int i: ans) {
        if (i) cout << i <<' ';
    }
    if (!felcserel.second) return 0;
    cout <<'\n';
    // cout << felcserel.first << ' ' << felcserel.second;

    // cout <<'\n';

    for(int i: ans) {
        if (i == felcserel.first) cout << felcserel.second << ' ';
        else if (i == felcserel.second) cout << felcserel.first << ' ';
        else if(i) cout << i <<' ';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms512 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/0186ms7332 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/33ms316 KiB
11Elfogadva3/33ms316 KiB
12Elfogadva1/13ms328 KiB
13Elfogadva2/23ms500 KiB
14Elfogadva3/31ms316 KiB
15Elfogadva1/1171ms4516 KiB
16Elfogadva3/3148ms9760 KiB
17Elfogadva5/546ms10224 KiB
18Elfogadva1/1211ms13352 KiB
19Elfogadva2/2157ms4528 KiB
20Elfogadva3/3219ms11576 KiB
21Elfogadva4/4181ms11584 KiB
22Elfogadva4/4171ms11692 KiB