Pagini recente » Cod sursa (job #131181) | Cod sursa (job #1065782) | Cod sursa (job #2132904) | Cod sursa (job #1284834) | Cod sursa (job #593024)
Cod sursa(job #593024)
#include<stdio.h>
#include<vector>
using namespace std;
#define NMAX 30005
#define pb push_back
char viz[NMAX];
vector<int> v[NMAX];
int win[NMAX],go[NMAX];
int mut[NMAX],nr,n,m,t;
int nrm;
void dfs(int nod)
{
int i,vec,lim=v[nod].size();
viz[nod]=1;
for(i=0;i<lim;i++)
{
if(!viz[vec=v[nod][i]])
dfs(vec);
if(!win[vec])
{
win[nod]=1;
go[nod]=vec;
}
}
}
int main ()
{
int i,j,a,b;
freopen("pioni.in","r",stdin);
freopen("pioni.out","w",stdout);
scanf("%d%d%d",&t,&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);
v[a].pb(b);
}
for(i=1;i<=n;i++)
if(!viz[i])
dfs(i);
for(i=1;i<=t;i++)
{
scanf("%d",&nr);
nrm=0;
for(j=1;j<=nr;j++)
{
scanf("%d",&a);
if(win[a])
mut[++nrm]=a;
}
if(!nrm)
printf("Fumeanu\n");
else
{
printf("Nargy\n%d ",nrm);
for(j=1;j<=nrm;j++)
printf("%d %d ",mut[j],go[mut[j]]);
printf("\n");
}
}
return 0;
}