Pagini recente » Cod sursa (job #2386308) | Cod sursa (job #900529) | Cod sursa (job #3269536) | Cod sursa (job #2353829) | Cod sursa (job #424788)
Cod sursa(job #424788)
#include<stdio.h>
#include<vector>
using namespace std;
int n,m,k,t,sol[30002],sg[20002],viz[20002];
vector<int> v[20002];
void dfs(int x)
{
viz[x]=1;
for(vector<int>::iterator it=v[x].begin();it!=v[x].end();it++)
if(!viz[*it])
dfs(*it);
for(vector<int>::iterator it=v[x].begin();it!=v[x].end();it++)
if(sg[*it]==0)
{
sg[x]=*it;
break;
}
}
int main()
{
freopen("pioni.in","r",stdin);
freopen("pioni.out","w",stdout);
scanf("%d%d%d",&t,&n,&m);
int i,x,y;
for(i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
v[x].push_back(y);
}
for(i=1;i<=n;i++)
if(!viz[i])
dfs(i);
int ok;
while(t--)
{
scanf("%d",&k);
ok=0;
for(i=1;i<=k;i++)
{
scanf("%d",&sol[i]);
if(sg[sol[i]])
ok++;
}
if(ok==0)
{
printf("Fumeanu\n");
continue;
}
printf("Nargy\n");
printf("%d ",ok);
for(i=1;i<=k;i++)
if(sg[sol[i]])
printf("%d %d ",sol[i],sg[sol[i]]);
printf("\n");
}
return 0;
}