Pagini recente » Cod sursa (job #2200913) | Cod sursa (job #1503350) | Cod sursa (job #1921825) | Cod sursa (job #2531857) | Cod sursa (job #1424136)
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>
#define NMAX 20007
#define x first
#define y second
using namespace std ;
int T, n, m, b[NMAX];
vector < int > v[NMAX];
vector < pair < int, int > > Ans ;
bool Viz[NMAX], win[NMAX] ;
void dfs(int Nod){
Viz[Nod] = 1 ;
for(int i = 0; i < v[Nod].size(); ++i){
if(Viz[v[Nod][i]] == 0)
dfs(v[Nod][i]);
if(win[v[Nod][i]] == 0){
win[Nod] = 1;
b[Nod] = v[Nod][i];
}
}
}
int main(){
freopen("pioni.in", "r", stdin);
freopen("pioni.out", "w", stdout);
scanf("%d %d %d", &T, &n, &m);
for(int i = 1; i <= m; ++i){
int X, Y;
scanf("%d %d", &X, &Y);
v[X].push_back(Y);
}
for(int i = 1; i <= n; ++i)
if(Viz[i] == 0)
dfs(i);
while(T){
--T;
Ans.clear() ;
int k ;
scanf("%d", &k);
bool Y = 1;
for(int i = 1; i <= k; ++i){
int X;
scanf("%d", &X);
if(win[X] == 1){
Y = 0;
Ans.push_back(make_pair(X, b[X]));
}
}
if(Y == 1)
printf("Fumeanu\n");
else{
printf("Nargy\n");
printf("%d ", Ans.size());
for(int i = 0; i < Ans.size(); ++i)
printf("%d %d ", Ans[i].x, Ans[i].y);
printf("\n");
}
}
return 0 ;
}