179872025-09-24 18:40:40algoproTestnevelés óracpp17Elfogadva 50/50224ms13352 KiB
// UUID: f04a41c2-b6de-4605-a517-a7f3bdab95d2
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, m;
    cin>>n>>m;
    vector<vector<int>>szl(n+1);
    vector<int>befok(n+1, 0);
    queue<int>nullasok;
        for(int i=0; i<m; i++){
        int a, b;
        cin>>a>>b;
        szl[a].push_back(b);
        befok[b]++;
    }
    for(int i=1; i<n+1; i++){
        if(befok[i]==0) {
            nullasok.push(i);
        }
    }
    vector<int>megold;
    int vmi=-1;
    while(!nullasok.empty()){
        int j=nullasok.front();
        megold.push_back(j);
        nullasok.pop();
        if(!nullasok.empty()){
           vmi=megold.size();
        }
        for(int sz : szl[j]){
            befok[sz]--;
            if(befok[sz]==0) nullasok.push(sz);
        }
    }
    if(vmi!=-1 && megold.size()==n){
        cout<<2<<endl;
        for(int x: megold)cout<<x<<" ";
        cout<<endl;
        for(int i=0; i<vmi-1; i++)cout<<megold[i]<<" ";
        cout<<megold[vmi]<<" "<<megold[vmi-1]<<" ";
        for(int i=vmi+1; i<megold.size(); i++)cout<<megold[i]<<" ";
    }
    else{
        if(megold.size()==n){
            cout<<1<<endl;
            for(int x : megold)cout<<x<<" ";
        }
        else cout<<0<<endl;

    }
    
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/0184ms7160 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/32ms316 KiB
11Elfogadva3/33ms316 KiB
12Elfogadva1/13ms316 KiB
13Elfogadva2/23ms316 KiB
14Elfogadva3/32ms404 KiB
15Elfogadva1/1163ms4288 KiB
16Elfogadva3/3150ms9940 KiB
17Elfogadva5/557ms10020 KiB
18Elfogadva1/1224ms13352 KiB
19Elfogadva2/2152ms4532 KiB
20Elfogadva3/3196ms11736 KiB
21Elfogadva4/4187ms11732 KiB
22Elfogadva4/4175ms11692 KiB