Pagini recente » Cod sursa (job #116957) | Cod sursa (job #567755) | Cod sursa (job #1405715) | Cod sursa (job #2998967) | Cod sursa (job #505878)
Cod sursa(job #505878)
#include <cstdio>
#include <vector>
#include <deque>
#include <cstring>
#define N 20002
#define pb push_back
#define ba back()
#define p_b pop_back()
using namespace std;
vector <int> v[N];
int ok[N];
int main()
{
int n,m,t,i,j,a,b,dest[N],da,s[N];
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);
ok[a]=1;
v[b].pb(a);
}
deque <int> d;
for (i=1;i<=n;++i)
if (ok[i]) ok[i]=0; else d.pb(i);
while (!d.empty())
{
a=d.ba;d.p_b;
while (!v[a].empty())
{
b=v[a].ba;v[a].p_b;
if (ok[b]<1-ok[a]) ok[b]=1,dest[b]=a;
d.push_front(b);
}
}
while (t--)
{
scanf("%d",&a);j=0;
memset(s,0,sizeof(s));
while (a--)
{
scanf("%d",&b);
++s[b];
if (ok[b]) ++j;
}
if (j)
{
printf("Nargy\n%d",j);
for (i=1;i<=n;++i)
if ((s[i]) && (ok[i]))
while (s[i]--)
printf(" %d %d",i,dest[i]);
printf("\n");
} else
printf("Fumeanu\n");
}
return 0;
}