Pagini recente » oji_2010_10 | Cod sursa (job #2288037) | Cod sursa (job #1945078) | Borderou de evaluare (job #2751504) | Cod sursa (job #2522179)
#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;
}