180312025-09-25 17:09:25algoproTestnevelés óracpp17Hibás válasz 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]<<' ';
			}
		}
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base9/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms508 KiB
3Hibás válasz0/0177ms6292 KiB
4Hibás válasz0/21ms316 KiB
5Részben helyes1/31ms500 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Hibás válasz0/31ms508 KiB
10Hibás válasz0/32ms316 KiB
11Hibás válasz0/33ms316 KiB
12Elfogadva1/13ms444 KiB
13Elfogadva2/23ms556 KiB
14Hibás válasz0/32ms316 KiB
15Elfogadva1/1171ms4440 KiB
16Hibás válasz0/3122ms8336 KiB
17Részben helyes1/510ms7852 KiB
18Hibás válasz0/1193ms11180 KiB
19Elfogadva2/2165ms4524 KiB
20Hibás válasz0/3162ms10364 KiB
21Hibás válasz0/4153ms10160 KiB
22Hibás válasz0/4162ms10260 KiB