182002025-10-13 18:25:59algoproTestnevelés óracpp17Hibás válasz 3/501.1s22700 KiB
// UUID: 6e77ad08-6b44-46df-a987-863bb71fd2ac
#include <bits/stdc++.h>
#include <cctype>
using namespace std;

void melysegi(int i, vector<vector<int>> &mat, vector<bool> &volt, vector<int> &sor, bool &possible) {
	/*volt[v] = true;
	for(int edge : mat[v]){
		if(!volt[edge]){
			melysegi(edge, mat, volt, sor);
		}
		else if(edge != parent[v]){
				
		}
	}
	sor.push_back(edge);*/
	
	for (int j = 0;j < mat[i].size();j++) {
		if (!volt[mat[i][j]]) {
			volt[mat[i][j]] = true;
			melysegi(mat[i][j], mat, volt, sor, possible);
			sor.push_back(mat[i][j]);	
		}
		else {
			if(find(sor.begin(), sor.end(), mat[i][j]) != sor.end()) {
			}
			else {
				possible = false;
			}
		}
	}
	
}

int main() {
	bool possible = true;
	int n, m; cin >> n >> m;
	int a, b;
	vector<vector<int>> mat(n,vector<int>(0,0));
	for (int i = 0;i < m;i++) {
		cin >> a >> b;
		mat[a - 1].push_back(b - 1);
	}
	vector<int> sor(0,0);
	vector<bool> volt(n,false);
	for (int i = 0;i < n;i++) {
		if (!volt[i]) {
			volt[i] = true;
			melysegi(i, mat, volt, sor, possible);
			sor.push_back(i);
		}
	}
	reverse(sor.begin(),sor.end());
	vector<int> sor2(0,0);
	sor2 = sor;
	int temp = 0;
	if (possible) {
		for (int i = 0;i < n - 1;i++) {
			if(find(mat[sor[i]].begin(), mat[sor[i]].end(), sor[i + 1]) == sor.end() or mat[sor[i]].size() == 0) {
				cout << 2 << endl;
				temp = sor[i + 1];
				sor[i + 1] = sor[i];
				sor[i] = temp;
				for(int j:sor) {
					cout << j + 1 << " ";
				}
				cout << endl;
				break;
			}
			if (i == n - 2) {
				cout << 1 << endl;
			}
		}
		for(int i:sor2) {
			cout << i + 1 << " ";
		}
	}
	else {
		cout << 0;
	}
	cout << 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base3/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/01ms316 KiB
3Időlimit túllépés0/01.083s5812 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
8Elfogadva1/11ms316 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/33ms316 KiB
11Hibás válasz0/34ms500 KiB
12Elfogadva1/13ms316 KiB
13Hibás válasz0/23ms508 KiB
14Hibás válasz0/32ms316 KiB
15Időlimit túllépés0/11.1s4016 KiB
16Időlimit túllépés0/31.1s8204 KiB
17Részben helyes1/557ms9180 KiB
18Időlimit túllépés0/11.087s9420 KiB
19Időlimit túllépés0/21.082s4148 KiB
20Hibás válasz0/3216ms17584 KiB
21Hibás válasz0/4202ms22700 KiB
22Hibás válasz0/4207ms19512 KiB