Pagini recente » Cod sursa (job #1267513) | Cod sursa (job #2669250) | Cod sursa (job #10522) | Cod sursa (job #953443) | Cod sursa (job #328404)
Cod sursa(job #328404)
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
#define file_in "pioni.in"
#define file_out "pioni.out"
#define Nmax 50101
#define Inf 0x3f3f3f3f
#define pb push_back
vector<int> v[Nmax];
int n,m,t,k,x,a,b,i,j,nr,sol[Nmax];
int viz[Nmax];
void dfs(int nod)
{
vector<int> :: iterator it;
for (it=v[nod].begin();it!=v[nod].end();++it)
if (!viz[*it]) dfs(*it);
viz[nod]=-1;
for (it=v[nod].begin();it!=v[nod].end();++it)
if (viz[*it]==-1) viz[nod]=*it;
}
int main()
{
freopen(file_in,"r",stdin);
freopen(file_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);
}
memset(viz,0,sizeof(viz));
for (i=1;i<=n;++i)
if (!viz[i]) dfs(i);
while(t--)
{
scanf("%d", &k);
nr=0;
for (i=1;i<=k;++i)
{
scanf("%d", &x);
if (viz[x]>=1)
{
nr++;
sol[nr]=x;
nr++;
sol[nr]=viz[x];
}
}
if (nr!=0)
{
printf("Nargy\n");
printf("%d ", nr/2);
for (i=1;i<=nr;++i) printf("%d ", sol[i]);
printf("\n");
}
else
printf("Fumeanu\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}