180612025-09-25 18:52:48algoproTestnevelés óracpp17Elfogadva 50/50133ms15768 KiB
// UUID: 384dd0ac-6cc0-4630-ba10-a328e175f22e
#include <bits/stdc++.h>
#include <queue>
using namespace std;

#define int long long
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n, m;cin >> n >> m;
    vector<vector<int>> g(n+1);
    vector<int> c(n+1, 0);
    vector<int> output;
    for(int i = 0; i < m; i++)
    {
        int a,b;cin >> a >> b;
        c[b]++;
        g[a].push_back(b);
    }
    int global_idx = -1;
    queue<int> q;
    for(int i = 1; i <= n; i++)
    {
        if(c[i] == 0) q.push(i); 
    }
    if(q.empty())
    {
        cout << "0";
        return 0;
    } 
    if(q.size() > 1) global_idx = 0;

    while(!q.empty())
    {
        int v = q.front();
        output.push_back(v);
        q.pop();
        int count = 0;
        int idx = -1;
        for(int e: g[v])
        {
            c[e]--;
            if(c[e] == 0)
            {
                count++;
                idx = output.size();
                q.push(e);
            } 
        }
        if(count == 0 && q.empty() && output.size() < n)
        {
            cout << "0";
            return 0;
        }
        else if(count > 1)
        {
            global_idx = idx;
        }
    }
    if(global_idx == -1) 
    {
        cout << "1\n";
        for(int a: output) cout << a << " ";
    }
    else
    {
        cout << "2\n";
        for(int a: output) cout << a << " ";
        swap(output[global_idx], output[global_idx+1]);
        cout << "\n";
        for(int a: output) cout << a << " ";    
    } 
}

/*


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
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/0108ms8888 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms512 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/32ms316 KiB
11Elfogadva3/32ms316 KiB
12Elfogadva1/12ms552 KiB
13Elfogadva2/22ms316 KiB
14Elfogadva3/31ms316 KiB
15Elfogadva1/175ms5796 KiB
16Elfogadva3/378ms10884 KiB
17Elfogadva5/543ms12380 KiB
18Elfogadva1/1133ms15768 KiB
19Elfogadva2/271ms6060 KiB
20Elfogadva3/3107ms12968 KiB
21Elfogadva4/4128ms12832 KiB
22Elfogadva4/4101ms12964 KiB