179782025-09-24 18:14:22algoproTestnevelés óracpp17Accepted 50/50129ms13348 KiB
// UUID: 894f67d6-72e2-4031-bed9-c55d5f925c02
#include <bits/stdc++.h>
using namespace std;


int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
	int n,m,x,y;
    cin>>n>>m;
    vector<vector<int>> nm(n+1);
    vector<int> f(n+1),ans;
    for(int i=0;i<m;i++){
        cin>>x>>y;
        nm[x].push_back(y);
        f[y]++;
    }
    queue<int> q;
    for(int i=1;i<=n;i++)
        if(f[i]==0)
            q.push(i);

    while(!q.empty()){
        int v=q.front();
        q.pop();
        ans.push_back(v);
        for(int i:nm[v]){
            f[i]--;
            if(f[i]==0){
                q.push(i);
            }
        }
        
    }
    if(ans.size()<n){
        cout<<0<<"\n";
        return 0;
    }
    int t=0;
    
    for(int i=0;i<n-1;i++){
        bool volt = false;
        for(int j:nm[ans[i]])
            if(j==ans[i+1]){
                volt=true;
            }
        if(!volt){
            t=i;
        }
    }
    cout<<(t>0?2:1)<<"\n";
    for(int i:ans){
        cout<<i<<" ";
    }
    if(t>0){
        swap(ans[t],ans[t+1]);
        for(int i:ans){
            cout<<i<<" ";
        }
    }
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/01ms508 KiB
3Accepted0/0108ms7336 KiB
4Accepted2/21ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms548 KiB
8Accepted1/11ms344 KiB
9Accepted3/31ms316 KiB
10Accepted3/32ms316 KiB
11Accepted3/32ms316 KiB
12Accepted1/12ms316 KiB
13Accepted2/22ms316 KiB
14Accepted3/31ms316 KiB
15Accepted1/168ms4372 KiB
16Accepted3/389ms9892 KiB
17Accepted5/541ms10016 KiB
18Accepted1/1128ms13348 KiB
19Accepted2/268ms4528 KiB
20Accepted3/3104ms11688 KiB
21Accepted4/4129ms11848 KiB
22Accepted4/4101ms11688 KiB