Cod sursa(job #2522179)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 12 ianuarie 2020 01:36:41
Problema Pioni Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>
using namespace std;

const int DIM = 20005;

bool vis[DIM], dp[DIM];
int nxt[DIM];
vector<int> edg[DIM], ans;

void dfs(int x) {
	if (vis[x]) 
		return;
	vis[x] = true;
	for (int y : edg[x]) {
		dfs(y);
		if (!dp[y]) {
			dp[x] = true;
			nxt[x] = y;
		}
	}
}

int main(void) {
	freopen("pioni.in", "r", stdin);
	freopen("pioni.out", "w", stdout);
	int t, n, m;
	scanf("%d %d %d", &t, &n, &m);
	for (int i = 1; i <= m; ++i) {
		int x, y;
		cin >> x >> y;
		edg[x].push_back(y);
	}
	for (int i = 1; i <= n; ++i) 
		dfs(i);
	while (t--) {
		ans.clear();
		int k;
		cin >> k;
		for (int i = 1; i <= k; ++i) {
			int x;
			cin >> x;
			if (dp[x])
				ans.push_back(x);
		}
		if (ans.size()) {
			cout << "Nargy\n";
			cout << ans.size() << " ";
			for (int x : ans)
				cout << x << " " << nxt[x] << " ";
			cout << "\n";
		} else
			cout << "Fumeanu\n";
	}
	return 0;
}