180312025-09-25 17:09:25algoproTestnevelés óracpp17Wrong answer 9/50193ms11180 KiB
// UUID: 0521ec0f-c254-4126-9bb7-44d7fa48b2c0
#include <bits/stdc++.h>
using namespace std;




int main() {
	int n, m;
	cin>>n>>m;
	vector<int> beel(n);
	vector<vector<int>> a(n);
	for(int i=0;i<m;i++){
		int x, y;cin>>x>>y;
		y--;x--;
		beel[y]++;
		a[x].push_back(y);
	}
	/*for(int i=0;i<n;i++){
		for(int x: a[i]){
			cout<<x<<' ';
		}
		cout<<'\n';
	}
	cout<<'\n';*/
	vector<int> topo;
	queue<int> q;
	int nn=0;
	for(int i=0;i<n;i++){
		if(beel[i]==0){	q.push(i);nn++;};
	}
	while(!q.empty()){
		int x=q.front();
		q.pop();
		topo.push_back(x);
		for(int z: a[x]){
			beel[z]--;
			if(beel[z]==0){
				q.push(z);nn++;
			}
		}
	}
	/*for(int i=0;i<n;i++){
		cout<<topo[i]<<' ';
	}*/
	//cout<<'\n'<<'\n';
	if(nn!=n){
		cout<<0<<'\n';return 0;
	}
	int hi=-1, ha=-1;
	for(int i=0;i<n-1;i++){
		bool b=true;
		for(int x: a[topo[i]]){
			if(x==topo[i+1]){
				b=false;
				break;
			}
		}
		if(b){
			hi=i;ha=i+1;
		}
	}
	if(hi==-1){
		cout<<1<<'\n';
		for(int x: topo){
			cout<<x+1<<' ';
		}
	}else{
		//cout<<hi<<' '<<ha<<"\n\n";
		cout<<2<<'\n';
		for(int i=0;i<n;i++){
			if(i==hi){
				cout<<topo[i+1]<<' ';
			}
			if(i==ha){
				cout<<topo[i-1]<<' ';
			}
		}
	}
}
SubtaskSumTestVerdictTimeMemory
base9/50
1Accepted0/01ms316 KiB
2Wrong answer0/01ms508 KiB
3Wrong answer0/0177ms6292 KiB
4Wrong answer0/21ms316 KiB
5Partially correct1/31ms500 KiB
6Wrong answer0/31ms316 KiB
7Wrong answer0/31ms316 KiB
8Accepted1/11ms316 KiB
9Wrong answer0/31ms508 KiB
10Wrong answer0/32ms316 KiB
11Wrong answer0/33ms316 KiB
12Accepted1/13ms444 KiB
13Accepted2/23ms556 KiB
14Wrong answer0/32ms316 KiB
15Accepted1/1171ms4440 KiB
16Wrong answer0/3122ms8336 KiB
17Partially correct1/510ms7852 KiB
18Wrong answer0/1193ms11180 KiB
19Accepted2/2165ms4524 KiB
20Wrong answer0/3162ms10364 KiB
21Wrong answer0/4153ms10160 KiB
22Wrong answer0/4162ms10260 KiB