180342025-09-25 17:24:51algoproTestnevelés óracpp17Elfogadva 50/50240ms14120 KiB
// UUID: 4bd7c332-9256-4c94-ad9c-48935e60e7e0
#include <bits/stdc++.h>
using namespace std;


int main() {
	int n, m;
	cin >> n >> m;
	vector<vector<int>> g(n + 1);
	vector<int> befok(n + 1);
	for (int i = 0; i < m; i ++) {
		int a, b;
		cin >> a >> b;
		g[a].push_back(b);
		befok[b] ++;
	}
	vector<int> ans;
	queue<int> q;
	for (int i = 1; i <= n; i ++) {
		if (befok[i] == 0) {
			q.push(i);
		}
	}
	while (!q.empty()) {
		int u = q.front();
		ans.push_back(u);
		q.pop();
		for (int v : g[u]) {
			befok[v] --;
			if (befok[v] == 0) q.push(v);
		}
	}
	if (ans.size() < n) {
		cout << 0;
		return 0;
	}
	auto ans2 = ans;
	bool done = false;
	for (int i = 1; i < n; i ++) {
		int u = ans[i - 1], v = ans[i];
		bool el = false;
		for (int c : g[u]) {
			if (c == v) {
				el = true;
				break;
			}
 		}
		if (!el) {
			swap(ans2[i - 1], ans2[i]);
			done = true;
			break;
		}
	}
	if (done) cout << 2 << "\n";
	else cout << 1 << "\n";
	for (int c : ans) cout << c << " ";
	cout << "\n";
	if (done) {
		for (int c : ans2) cout << c << " ";
	}
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/0194ms7656 KiB
4Elfogadva2/21ms500 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms508 KiB
8Elfogadva1/11ms500 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/33ms556 KiB
11Elfogadva3/33ms448 KiB
12Elfogadva1/13ms496 KiB
13Elfogadva2/23ms508 KiB
14Elfogadva3/32ms452 KiB
15Elfogadva1/1166ms4644 KiB
16Elfogadva3/3152ms10388 KiB
17Elfogadva5/559ms10792 KiB
18Elfogadva1/1240ms14120 KiB
19Elfogadva2/2165ms4780 KiB
20Elfogadva3/3189ms12204 KiB
21Elfogadva4/4193ms12328 KiB
22Elfogadva4/4180ms12200 KiB