182642025-10-16 19:00:25algoproTestnevelés óracpp17Hibás válasz 7/50238ms64000 KiB
// UUID: 865cbfab-4697-477d-8511-fc315e01087c
#include <bits/stdc++.h>
#include <cctype>
#include <vector>
using namespace std;

void melysegi(vector<vector<int>> &memo, int v, vector<int> &tps, vector<bool> &done) {
	for (int i = 0;i < memo[v].size();i++) {
		if (!done[memo[v][i]]) {
			melysegi(memo, memo[v][i], tps, done);
			done[memo[v][i]] = true;
			tps.push_back(memo[v][i]);
		}
	}
}

int main() {
	int n,k;cin >> n >> k;
	vector<vector<int>> memo(n,vector<int>(0,0));
	int s = 0,l = 0;
	for (int i = 0;i < k;i++) {
		cin >> s >> l;
		memo[s - 1].push_back(l - 1);
	}
	/*
	for (int i = 0; i < n;i++) {
		for (int j = 0; j < memo[i].size();j++) {
			cout << memo[i][j] << " ";
		}
		cout << endl;
	}
	cout << "-------------------------" << endl;
	*/
	vector<bool> done(n + 1,false);
	vector<int> tps(0,0);
	for (int i = 0; i < n;i++) {
		if (!done[i]) {
			melysegi(memo, i, tps, done);
			done[i] = true;
			tps.push_back(i);
		}
	}
	reverse(tps.begin(), tps.end());
	int ans = 1;
	int swapplace = 0;
	if (done[n]) {
		cout << 0;
	}
	else {
		for (int i = 0;i < n - 1;i++) {
			if (find(memo[tps[i]].begin(), memo[tps[i]].end(), tps[i + 1]) == memo[tps[i]].end()) {
				ans++;
				swapplace = i;
				break;
			}
		}
		cout << ans << endl;
		for (int i:tps) {
			cout << i + 1 << " ";
		}
		cout << endl;
		if (ans == 2) {
			for (int i = 0;i < n;i++) {
				if (swapplace == i) {
					cout << tps[i + 1];
				}
				else {
					if (swapplace + 1 == i) {
						cout << tps[i - 1];
					}
					else {
						cout << tps[i];
					}
				}
			}
		}
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base7/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms316 KiB
3Hibás válasz0/0210ms6572 KiB
4Hibás válasz0/21ms512 KiB
5Részben helyes1/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/31ms316 KiB
8Futási hiba0/172ms64000 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/33ms316 KiB
11Hibás válasz0/33ms508 KiB
12Futási hiba0/161ms64000 KiB
13Elfogadva2/23ms380 KiB
14Hibás válasz0/32ms512 KiB
15Elfogadva1/1172ms4264 KiB
16Hibás válasz0/3150ms9644 KiB
17Részben helyes1/550ms8360 KiB
18Hibás válasz0/1234ms12072 KiB
19Elfogadva2/2180ms4528 KiB
20Hibás válasz0/3202ms16708 KiB
21Hibás válasz0/4210ms21968 KiB
22Hibás válasz0/4238ms18864 KiB