Pagini recente » Cod sursa (job #638042) | Cod sursa (job #3179947) | Cod sursa (job #2632815) | Cod sursa (job #1592190) | Cod sursa (job #596269)
Cod sursa(job #596269)
# include <cstdio>
# include <cstring>
# include <vector>
using namespace std;
const char *FIN = "pioni.in", *FOU = "pioni.out";
const int MAX_N = 20005, MAX_K = 30005;
int T, N, M, kn[MAX_K], wh[MAX_N], see[MAX_K];
char viz[MAX_N];
vector <int> V[MAX_N];
int dfs (int N) {
if (viz[N] != -1) return viz[N];
else viz[N] = 0;
for (vector <int> :: iterator i = V[N].begin (); i != V[N].end (); ++i) {
if (dfs (*i)) continue;
viz[N] = 1, wh[N] = *i;
break ;
}
return viz[N];
}
int main (void) {
memset (viz, -1, sizeof (viz));
freopen (FIN, "r", stdin);
freopen (FOU, "w", stdout);
scanf ("%d %d %d", &T, &N, &M);
for (int i = 0, a, b; i < M; ++i) {
scanf ("%d %d", &a, &b);
V[a].push_back (b);
}
for (int K = 0, verf = 0; T; --T) {
scanf ("%d", &K), verf = 0;
for (int i = 0; i < K; ++i) {
scanf ("%d", kn + i);
verf += (see[i] = dfs (kn[i]));
}
if (verf == 0) {
printf ("Fumeanu\n");
} else {
printf ("Nargy\n%d ", verf);
for (int i = 0; i < K; ++i)
if (see[i])
printf ("%d %d ", kn[i], wh[kn[i]]);
printf ("\n");
}
}
}