180562025-09-25 18:42:41algoproTestnevelés óracpp17Időlimit túllépés 33/501.1s13840 KiB
// UUID: 0d2a6d7d-7ae7-4d86-bc52-9b2b784c0c4b
#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>

using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n, k; cin >> n >> k;
    vector<vector<int>> g(n + 1);
    vector<int> beelek(n + 1, 0);
    vector<vector<int>> solutions(2);
    for (int i = 0; i < k; i++) {
        int a, b; cin >> a >> b;
        g[a].push_back(b);
        beelek[b]++;
    }
    beelek[0] = -1;
    while ( solutions[0].size() < n ) {
        vector<int> forrasok;
        for (int i = 1; i <= n; i++) {
            if (beelek[i] == 0) {
                forrasok.push_back(i);
            }
        }
        if (forrasok.size() == 0) {
            cout << 0; return 0;
        }
        else {
            for (int i = 0; i < forrasok.size(); i++) {
                solutions[0].push_back(forrasok[i]);
                solutions[1].push_back(forrasok[forrasok.size() - 1 - i]);
            }
        }
        for (int j : forrasok) {
            beelek[j] = -1;
            for (int i : g[j]) {
                beelek[i]--;
            }
        }
        
    }
    int o = 1;
    for (int i = 0; i < n; i++) {
        if (solutions[0][i] != solutions[1][i]) {
            o = 2; break;
        }
    }
    cout << o << endl;
    for (int i : solutions[0]) {
        cout << i << " ";
    }
    cout << endl;
    if (o == 2) {
        for (int i : solutions[1]) {
            cout << i << " ";
        }
    }
}
// #include <bits/stdc++.h>
// #include <vector>
// #include <numeric>

// using namespace std;

// int main() {
//     ios::sync_with_stdio(false);
//     cin.tie(0);
//     int n, k; cin >> n >> k;
//     vector<vector<int>> g(n + 1);
//     vector<int> beelek(n + 1, 0);
//     vector<vector<int>> solutions(2);
//     for (int i = 0; i < k; i++) {
//         int a, b; cin >> a >> b;
//         g[a].push_back(b);
//         beelek[b]++;
//     }
//     beelek[0] = -1;
//     // sor letrehozas
//     queue<int> forrasok;
//     vector<int> sorrend;
//     // sorba bepakoljuk az osszes forrast
//     for (int i = 1; i <= n; i++) {
//         if (beelek[i] == 0) {
//             forrasok.push(i);
//         }
//     }
//     while (forrasok.size() != 0) {
//         // kiszedunk 1 forrast a sorbol
//         // toroljuk az ő éleit és a sorrend végére tesszük

//         int x = forrasok.front();
//         forrasok.pop();
//         sorrend.push_back(x);

//         for (int i : g[x]){
//             --beelek[i];
//             if(beelek[i] == 0) forrasok.push(i);
//         }
//     }

//     if (sorrend.size()<n){
//         cout<<0; return 0;
//     }
//     vector<int> sorrend2;
//     int itt = -1;
//     for(int i = 0 ; i < n - 1; i++){
//         if (find(g[sorrend[i]].begin(), g[sorrend[i]].end(), sorrend[i+1]) != g[sorrend[i]].end()){
//             itt = i;
//         }
//     }

// }


// /*


// beolvasasás
// befokok számolása

// sor létrehozása
// források a sorba

// queue <int> q;
// vector <int> ans;

// while (q.size()>0){
    
//     int x = q.front();
//     q.pop();

//     for (int y : g[x]) {
//         y befokát csökkentem
//         ha 0-ra csökkent, akkor beteszem a sorba
//     }

// }

// ans mérete alapján eldöntöm

// ----------------------------------------

// Létezik-e több?


// */
RészfeladatÖsszpontTesztVerdiktIdőMemória
base33/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/092ms7656 KiB
4Elfogadva2/21ms508 KiB
5Elfogadva3/31ms508 KiB
6Elfogadva3/31ms508 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/32ms384 KiB
11Elfogadva3/32ms316 KiB
12Elfogadva1/12ms388 KiB
13Elfogadva2/23ms316 KiB
14Elfogadva3/32ms316 KiB
15Időlimit túllépés0/11.1s4000 KiB
16Időlimit túllépés0/31.1s8620 KiB
17Elfogadva5/545ms9988 KiB
18Elfogadva1/1105ms13840 KiB
19Időlimit túllépés0/21.09s4148 KiB
20Időlimit túllépés0/31.088s9268 KiB
21Időlimit túllépés0/41.082s9264 KiB
22Időlimit túllépés0/41.083s9200 KiB