Pagini recente » Cod sursa (job #2388370) | Cod sursa (job #3175286) | Cod sursa (job #2262222) | Cod sursa (job #2467077) | Cod sursa (job #710347)
Cod sursa(job #710347)
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
int n,m,k,t,i,j,d[20010],x,y,pion,maxim;
vector<int> a[20010];
bool uz[20010];
void df(int x)
{
int i;
uz[x]=1;
for(i=0;i<a[x].size();++i)
{
if(a[a[x][i]].size())
df(a[x][i]);
else
d[a[x][i]]=0;
if(d[x]==1<<30)
d[x]=d[a[x][i]]+1;
else
if(d[x]%2==0)
{
if(d[a[x][i]]+1<d[x]||d[a[x][i]]%2==0)
d[x]=d[a[x][i]]+1;
}
else
if(d[x]%2==1)
{
if(d[a[x][i]]%2==0&&d[a[x][i]]+1<d[x])
d[x]=d[a[x][i]]+1;
}
}
}
int main()
{
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",&x,&y);
a[x].push_back(y);
}
for(i=1;i<=n;++i)
d[i]=1<<30;
for(i=1;i<=n;++i)
if(!uz[i])
df(i);
while(t)
{
--t;
maxim=0;
scanf("%d",&k);
for(i=1;i<=k;++i)
{
scanf("%d",&pion);
if(d[pion]>maxim)
maxim=d[pion];
}
if(maxim%2==1)
printf("Nargy\n");
else
printf("Fumeanu\n");
}
return 0;
}