Pagini recente » Cod sursa (job #2127394) | Cod sursa (job #715416) | Cod sursa (job #2312022) | Cod sursa (job #331583) | Cod sursa (job #235348)
Cod sursa(job #235348)
# include <cstdio>
# include <vector>
using namespace std;
# define FIN "pioni.in"
# define FOUT "pioni.out"
# define MAXN 20005
# define MAXK 30005
int T, N, M, K, i, j, rez;
int S[MAXN];
int Go[MAXN];
int Win[MAXN];
int Pion[MAXK];
vector <int> E[MAXN];
void df(int nod)
{
int i, L = E[nod].size() - 1;
S[nod] = 1;
Win[nod] = 0;
for (i = 0; i <= L; ++i)
if (!S[E[nod][i]])
{
df(E[nod][i]);
if (!Win[E[nod][i]])
{
Win[nod] = 1;
Go[nod] = E[nod][i];
}
} else
if (!Win[E[nod][i]])
{
Win[nod] = 1;
Go[nod] = E[nod][i];
}
}
int main()
{
freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%d%d%d",&T,&N,&M);
int a, b;
for (i = 1; i <= M; ++i)
{
scanf("%d%d",&a, &b);
E[a].push_back(b);
}
for (i = 1; i <= N; ++i)
if (!S[i]) df(i);
for (; T; --T)
{
scanf("%d",&K);
rez = 0;
for (i = 1; i <= K; ++i)
{
scanf("%d",&Pion[i]);
rez += Win[Pion[i]];
}
if (rez)
{
printf("Nargy\n%d ",rez);
for (i = 1; i <= K; ++i)
if (Win[Pion[i]])
printf("%d %d ",Pion[i], Go[Pion[i]]);
printf("\n");
} else
printf("Fumeanu\n");
}
return 0;
}