127592024-12-30 00:17:14xxxKerékpártúra (50 pont)cpp17Elfogadva 50/50137ms6200 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

#define f first
#define s second
const int mxN = 13000;
vector<vector<int> > adj(mxN), adj2(mxN);
set<int> ans;
bool vis[mxN], vis2[mxN];

void dfs(int v) {
	vis[v] = 1;
	for(auto u : adj2[v]) {
		if (!vis[u]) {
			dfs(u);
		}
	}
}

void dfs2(int v) {
	vis2[v] = 1;
	if (vis[v] == 1) {
		ans.insert(v);
	} else {
		ans.insert(v);
		return;
	}

	for(auto u : adj[v]) {
		if (!vis2[u]) {
			dfs2(u);
		}
	}
}



signed main() {
	int n, m, k;
	cin >> n >> m >> k;

	for(int i = 0; i < m; i++) {
		int x, y;
		cin >> x >> y;
		adj[x].push_back(y);
		adj2[y].push_back(x);
	}

	dfs(k);
	dfs2(k);

	cout << ans.size()-1 << endl;
	for(auto x : ans) {
		if (x!=k)
		cout << x << ' ';
	}


}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/02ms824 KiB
2Elfogadva0/020ms1712 KiB
3Elfogadva2/21ms824 KiB
4Elfogadva2/22ms824 KiB
5Elfogadva2/21ms824 KiB
6Elfogadva2/22ms824 KiB
7Elfogadva2/21ms824 KiB
8Elfogadva2/23ms1060 KiB
9Elfogadva2/24ms1084 KiB
10Elfogadva2/24ms1080 KiB
11Elfogadva2/24ms1160 KiB
12Elfogadva2/213ms1408 KiB
13Elfogadva2/212ms1540 KiB
14Elfogadva2/221ms2060 KiB
15Elfogadva3/335ms2492 KiB
16Elfogadva4/441ms2868 KiB
17Elfogadva4/457ms3416 KiB
18Elfogadva3/352ms3388 KiB
19Elfogadva3/345ms3196 KiB
20Elfogadva3/3119ms5552 KiB
21Elfogadva3/3135ms5944 KiB
22Elfogadva3/3137ms6200 KiB