Pagini recente » Cod sursa (job #683944) | Cod sursa (job #1352638) | Cod sursa (job #470139) | Cod sursa (job #2362252) | Cod sursa (job #929464)
Cod sursa(job #929464)
#include<cstdio>
#include<vector>
using std::vector;
static vector<int> v[20005];
static int nr[20005], zr[20005];
static void calc (int n)
{
bool zero=1;
for(vector<int>::iterator it=v[n].begin();it!=v[n].end();it++){
if(nr[*it]==-1)
calc (*it);
if(!nr[*it]){
zr[n]=*it;
zero=0;
break;
}
}
nr[n]=zero ? 0 : v[n].size();
}
int main (void)
{
freopen ("pioni.in","r",stdin);
#ifdef INFOARENA
freopen ("pioni.out","w",stdout);
#endif
int t,n,m;
scanf ("%d%d%d",&t,&n,&m);
while(m--){
int x,y;
scanf ("%d%d",&x,&y);
v[x].push_back (y);
}
for(int i=1;i<=n;i++)
nr[i]=-1;
for(int i=1;i<=n;i++)
if(nr[i]==-1)
calc (i);
while(t--){
int k;
scanf ("%d",&k);
vector<int> sol;
for(int i=0;i<k;i++){
int x;
scanf ("%d",&x);
if(nr[x])
sol.push_back (x);
}
if(sol.size()){
printf ("Nargy\n%lu ",sol.size());
for(vector<int>::iterator it=sol.begin();it!=sol.end();it++)
printf ("%d %d ", *it, zr[*it]);
puts ("");
} else
puts ("Fumeanu");
}
return 0;
}