Cod sursa(job #147703)

Utilizator raula_sanChis Raoul raula_san Data 3 martie 2008 13:28:29
Problema Pioni Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>
#include <vector>

#define dim 20001

using namespace std;

vector <int> G[dim];

int Sg[dim];

int T;
int N;
int M;

int A[dim];

void Df(int nd)
{
	int i;
	for(i=0; i<G[nd].size(); ++i)
	{
		Df(G[nd][i]);
		if(!Sg[G[nd][i]]) Sg[nd] = 1;
	}
}

int main()
{
	freopen("pioni.in", "rt", stdin);
	freopen("pioni.out", "wt", stdout);

	int x, y, i;
	for(scanf("%d %d %d", &T, &N, &M); M; --M)
	{
		scanf("%d %d", &x, &y);
		G[x].push_back(y);
	}

	for(i=1; i<=N; ++i) Df(i);

	for(; T; --T)
	{
		A[0] = 0;
		for(scanf("%d", &M); M; --M)
		{
			scanf("%d", &x);
			if(Sg[x]) A[++A[0]] = x;
		}

		if(A[0])
		{
			printf("Nargy\n%d ",A[0]);
			for(i=1; i<=A[0]; ++i)
				for(int j=0; j<G[A[i]].size(); ++j)
					if(!Sg[G[A[i]][j]])
					{
						printf("%d %d " , A[i], G[A[i]][j]);
						break;
					}
			printf("\n");
		}
		else printf("Fumeanu\n");
	}

	fclose(stdin);
	fclose(stdout);

	return 0;
}