Cod sursa(job #147708)

Utilizator raula_sanChis Raoul raula_san Data 3 martie 2008 13:30:49
Problema Pioni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 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)
{
	vector <int> :: iterator it;

	for(it=G[nd].begin(); it!=G[nd].end(); ++it)
	{
		Df(*it);
		if(!Sg[*it]) 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(vector <int> :: iterator it = G[A[i]].begin(); it!=G[A[i]].end(); ++it)
					if(!Sg[*it])
					{
						printf("%d %d " , A[i], *it);
						break;
					}
			printf("\n");
		}
		else printf("Fumeanu\n");
	}

	fclose(stdin);
	fclose(stdout);

	return 0;
}