179782025-09-24 18:14:22algoproTestnevelés óracpp17Elfogadva 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<<" ";
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms508 KiB
3Elfogadva0/0108ms7336 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms548 KiB
8Elfogadva1/11ms344 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/32ms316 KiB
11Elfogadva3/32ms316 KiB
12Elfogadva1/12ms316 KiB
13Elfogadva2/22ms316 KiB
14Elfogadva3/31ms316 KiB
15Elfogadva1/168ms4372 KiB
16Elfogadva3/389ms9892 KiB
17Elfogadva5/541ms10016 KiB
18Elfogadva1/1128ms13348 KiB
19Elfogadva2/268ms4528 KiB
20Elfogadva3/3104ms11688 KiB
21Elfogadva4/4129ms11848 KiB
22Elfogadva4/4101ms11688 KiB