Pagini recente » Cod sursa (job #1272266) | Cod sursa (job #2376431) | Cod sursa (job #982639) | Cod sursa (job #1239269) | Cod sursa (job #944405)
Cod sursa(job #944405)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("pioni.in");
ofstream fout("pioni.out");
const int MAXN = 21000;
int N, M, T;
int win[MAXN], move[MAXN], viz[MAXN];
vector<int> graph[MAXN];
void dfs(int nod) {
viz[nod] = 1;
for (int i = 0; i < graph[nod].size(); ++i) {
int node = graph[nod][i];
if (!viz[node])
dfs(node);
if (!win[node]) {
win[nod] = 1;
move[nod] = node;
}
}
}
int main() {
fin >> T >> N >> M;
for (int i = 1; i <= M; ++i) {
int a, b;
fin >> a >> b;
graph[a].push_back(b);
}
for (int i = 1; i <= N; ++i) {
if (!viz[i])
dfs(i);
}
for (;T; --T) {
int K, sol[MAXN];
fin >> K;
sol[0] = 0;
for (int i = 1; i <= K; ++i) {
int a;
fin >> a;
if (win[a])
sol[++sol[0]] = a;
}
if (sol[0] == 0)
fout << "Fumeanu\n";
else {
fout << "Nargy\n" << sol[0] << " ";
for (int i = 1; i <= sol[0]; ++i)
fout << sol[i] << " " << move[sol[i]] << " ";
fout << "\n";
}
}
return 0;
}