179662025-09-24 17:54:59algoproTestnevelés óracpp17Hibás válasz 9/50228ms20504 KiB
// UUID: 1f9be61c-7c1e-4f0c-8e8f-ee850001b193
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> graf;
vector<int> vis;
bool kor=false;
vector<int> ans;

void dfs(int x){
    vis[x]=1;
    for (int i:graf[x]){
        if (vis[i]==0) dfs(i);
        else if (vis[i]==1) kor=true;
    }
    ans.push_back(x);
    vis[x]=2;
}

int main() {
	int n,k; cin>>n>>k;
    int a,b; 
    graf.resize(n);
    vis.resize(n,0);
    for (int i=0; i<k; i++){
        cin>>a>>b;
        a--; b--;
        graf[a].push_back(b);
    }
    for (int i=0; i<n; i++){
        if (vis[i]==0) dfs(i);
    }
    if (kor) cout<<0<<endl;
    else{ 
        int ind=-1;
        reverse(ans.begin(),ans.end());
        for (int i=0; i<n-1; i++){
            bool g=false;
            for (int j:graf[ans[i]]){
                if (j==ans[i+1]){
                    g=true;
                }
            }
            if (!g) ind=i;
        }
        if (ind==-1){
            cout<<1<<endl;
            for (int i:ans) cout<<i+1<<" ";
        }
        else {
            cout<<2<<endl;
            for (int i=0; i<n; i++){
                cout<<ans[i]<<" ";
            } 
            cout<<endl;
            swap(ans[ind],ans[ind+1]);
            for (int i=0; i<n; i++){
                cout<<ans[i]<<" ";
            }
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base9/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms316 KiB
3Hibás válasz0/0209ms7196 KiB
4Hibás válasz0/21ms316 KiB
5Részben helyes1/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/33ms316 KiB
11Hibás válasz0/33ms316 KiB
12Elfogadva1/13ms316 KiB
13Elfogadva2/23ms508 KiB
14Hibás válasz0/32ms316 KiB
15Elfogadva1/1160ms4528 KiB
16Hibás válasz0/3173ms10144 KiB
17Részben helyes1/557ms9384 KiB
18Hibás válasz0/1228ms13236 KiB
19Elfogadva2/2164ms4528 KiB
20Hibás válasz0/3216ms16276 KiB
21Hibás válasz0/4211ms20504 KiB
22Hibás válasz0/4207ms17920 KiB