180842025-09-28 12:29:57algoproTestnevelés óracpp17Futási hiba 27/5063ms64000 KiB
// UUID: 5c77a354-fc30-454e-b07c-88bfeb1bbcb7
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> gr, grg;

int main() {
	int n, k;
	cin >> n >> k;
	gr.resize(n + 1);
	grg.resize(n + 1, vector<int>(n + 1));
	vector<int> befok(n + 1);
	befok[0] = 3;
	for (int i = 1; i <= k; i++) {
		int a, b;
		cin >> a >> b;
		gr[a].push_back(b);
		grg[a][b] = 1;
		befok[b]++;
	}
	queue<int> q;
	vector<int> ans;
	for (int i = 1; i <= n; i++) {
		if (!befok[i]) {
			q.push(i);
			ans.push_back(i);
		}
	}
	while (!q.empty()) {
		int a = q.front();
		q.pop();
		for (int i : gr[a]) {
			if (befok[i] == 1) {
				q.push(i);
				ans.push_back(i);
			}
			befok[i]--;
		}
	}
	if (ans.size() == n) {
		int x = -1;
		for (int i = 0; i < n - 1; i++) {
			if (!grg[ans[i]][ans[i + 1]]) {
				x = i;
			}
		}
		if (x != -1) {
			cout << "2\n";
			for (int i = 0; i < n; i++) {
				cout << ans[i] << ' ';
			}
			cout << '\n';
			for (int i = 0; i < n; i++) {
				if (i == x) {
					cout << ans[i + 1] << ' ';
				}
				else if (i == x + 1) {
					cout << ans[i - 1] << ' ';
				}
				else {
					cout << ans[i] << ' ';
				}
			}
		}
		else {
			cout << "1\n";
			for (int i = 0; i < n; i++) {
				cout << ans[i] << ' ';
			}
		}
	}
	else {
		cout << 0;
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base27/50
1Elfogadva0/01ms324 KiB
2Elfogadva0/01ms316 KiB
3Futási hiba0/052ms64000 KiB
4Elfogadva2/21ms508 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva1/11ms316 KiB
9Elfogadva3/31ms508 KiB
10Elfogadva3/34ms2528 KiB
11Elfogadva3/36ms4396 KiB
12Elfogadva1/16ms4652 KiB
13Elfogadva2/27ms4404 KiB
14Elfogadva3/36ms4404 KiB
15Futási hiba0/163ms64000 KiB
16Futási hiba0/352ms64000 KiB
17Futási hiba0/561ms64000 KiB
18Futási hiba0/150ms64000 KiB
19Futási hiba0/261ms64000 KiB
20Futási hiba0/359ms64000 KiB
21Futási hiba0/452ms64000 KiB
22Futási hiba0/461ms64000 KiB