179742025-09-24 18:10:40algoproTestnevelés óracpp17Hibás válasz 1/50273ms64000 KiB
// UUID: 5cc0429d-2be2-418b-a8b4-8245c7a2b00d
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> graph;
vector<bool> been;
vector<int> solution;

void dfs(int node){
	for(int next:graph[node]){
		if(!been[next]) dfs(next);
	}
	solution.push_back(node);
	been[node]=true;
return;
}


int main() {
	int N,K;
	cin >> N >> K;
	graph.resize(N+1);

	for(int i=0; i<K; i++){
		int a,b;
		cin >> a >> b;
		graph[a].push_back(b);
	}

	been.resize(N+1,false);

	for(int i=1; i<=N; i++){
		if(!been[i]) dfs(i);
	}

	been.resize(N+1,false);
	bool check;
	bool AtLeastTwo=false;
	int i=0;
	reverse(solution.begin(),solution.end());
	
	for(int place:solution){
		check=false;
		been[place]=true;
		for(int u:graph[place]){
			if(!been[u]) {cout << 0 << u << place; return 0;}
			if(i < N && u == solution[i+1]) {check=true;cout << place << " "<< u << "\n";}
		}
		if(!check && i<N-1){AtLeastTwo=true;}
		i++;
	}
	if(AtLeastTwo) cout << "2\n";
	else cout << "1\n";
	
	for(int n:solution) cout << n << " ";
return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base1/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/01ms316 KiB
3Hibás válasz0/0194ms6540 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/31ms316 KiB
8Futási hiba0/163ms64000 KiB
9Hibás válasz0/31ms508 KiB
10Hibás válasz0/33ms456 KiB
11Hibás válasz0/33ms388 KiB
12Futási hiba0/171ms64000 KiB
13Hibás válasz0/23ms432 KiB
14Hibás válasz0/32ms316 KiB
15Hibás válasz0/1185ms4736 KiB
16Hibás válasz0/3172ms9900 KiB
17Részben helyes1/535ms7100 KiB
18Hibás válasz0/1204ms11044 KiB
19Hibás válasz0/2177ms5012 KiB
20Hibás válasz0/3266ms17836 KiB
21Hibás válasz0/4273ms22956 KiB
22Hibás válasz0/4224ms19936 KiB