Cod sursa(job #697774)

Utilizator ms-ninjacristescu liviu ms-ninja Data 29 februarie 2012 10:57:34
Problema Pioni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <vector>
using namespace std;
#define dim 50005
int t, n, m;
int f[20000], viz[200000], win[20000], mut[20000];
vector <int> v[dim];

int dfs(int nod)
{
	viz[nod]=1;
	for(int k=0;k<v[nod].size();++k)
	{
		if(viz[v[nod][k]]==0)
			dfs(viz[v[nod][k]]);
		if(win[v[nod][k]]==0)
		{
			win[nod]=1;
			f[nod]=v[nod][k];
		}
	}
}

int main()
{
	ifstream fin("pioni.in");
	ofstream fout("pioni.out");
	int i,a , b;
	fin>>t >>n >>m;
	
	for(i=1;i<=m;++i)
	{
		fin>>a >>b;
		v[a].push_back(b);
	}
	
	for(i=1;i<=n;++i)
		if(viz[i]==0)
			dfs(i);
	
		int q,k,j;
	for(;t;--t)
	{
		int nrm=0;
		fin>>k;
		for(i=1;i<=k;++i)
		{
			fin>>q;
			if(win[q])
				mut[++nrm]=q;
		}
		
		if(!nrm)
			fout<<"Fumeanu" <<'\n';
		else
		{
			fout<<"Nargy" <<'\n' <<nrm <<" ";
			for(j=1;j<=nrm;++j)
				fout<<mut[j] <<" " <<f[mut[j]] <<" ";
			fout<<'\n';
		}
			
	}
	
	return 0;
}