Pagini recente » Cod sursa (job #1531050) | Cod sursa (job #156536) | Cod sursa (job #3212066) | Cod sursa (job #1239637) | Cod sursa (job #133963)
Cod sursa(job #133963)
#include<stdio.h>
#include<vector>
#define mkp make_pair
#define ff first
#define ss second
#define vii vector<int> :: iterator
#define pb push_back
#define vi vector<int>
#define ff first
#define ss second
using namespace std;
const int maxn = 70100;
pair <int,int> sti[maxn];
int st[maxn];
int i,t,m;
int x,y;
vi vect[maxn];
int ver[maxn];
int n,j;
int spg[maxn];
int k;
void dfs(int i)
{
if (ver[i]) return ;
ver[i] = 1;
vii it;
for(it = vect[i].begin(); it != vect[i].end(); ++it)
{
dfs(*it);
}
st[++st[0]] = i;
}
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);
vect[x].pb(y);
}
for(i = 1;i <= n; ++i) dfs(i);
for(j = 1;j <= st[0]; ++j)
{
vii it;
int ver = 0;
for(it = vect[st[j]].begin(); it != vect[st[j]].end() ;++it)
{
if (!spg[*it]) ver = 1;
}
spg[st[j]] = ver;
}
for(;t;--t)
{
scanf("%d",&k);
for(i = 1;i <= k; ++i)
{
scanf("%d",&x);
vii it;
for(it = vect[x].begin();it != vect[x].end(); ++it)
{
if (!spg[*it])
{
sti[++sti[0].ff] = mkp(x,*it);
break;
}
}
}
if (sti[0].ff != 0)
{
printf("Nargy\n");
printf("%d",sti[0].ff);
for(j = 1;j <= sti[0].ff; ++j)
{
printf(" %d %d",sti[j].ff,sti[j].ss);
}
printf("\n");
}
else
{
printf("Fumeanu\n");
}
sti[0].ff = 0;
}
return 0;
}