Cod sursa(job #1139364)

Utilizator EpictetStamatin Cristian Epictet Data 11 martie 2014 01:22:58
Problema Arbori indexati binar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("arbore.in");
ofstream g("arbore.out");
int n,t,x,viz[2001];
vector <int> L[2001];

void dfs(int p)
{   viz[p]=1;
    vector <int> :: iterator it=L[p].begin(), sf=L[p].end();
    for(; it != sf ; ++it)
	  if(!viz[*it]) dfs(*it);
}

int main()
{
	f >> n >> t;
	for(int i=1; i<=n; i++)
	{
		f >> x;
		L[x].push_back(i);
	}

	for(int i=1; i<=n; i++)
		if(!L[i].size()) g << i << " ";
	g << '\n';

	for(int i=1; i<=t; i++)
	{
		f >> x;
		for(int j=1; j<=n; j++) viz[j] = 0;
		dfs(x);
		for(int j=1; j<=n; j++)
			if(j != x && viz[j]) g << j << " ";
		g << '\n';
	}
	g.close();
	return 0;
}