Cod sursa(job #333999)

Utilizator bent_larsenSturzu Antonio-Gabriel bent_larsen Data 24 iulie 2009 22:33:08
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
#include<algorithm>
#include<vector>

using namespace std;

vector <int> v[100000];
int zvon[100000];

void dfs(int rad)
{
	int i,nr=0;

	zvon[rad]=0;
	for(i=0;i<(int) v[rad].size();i++)
	{
		dfs(v[rad][i]);
		if(1+zvon[v[rad][i]]>zvon[rad])
		{
			zvon[rad]=1+zvon[v[rad][i]];
			nr=0;
		}
		else
			if(1+zvon[v[rad][i]]==zvon[rad])
				nr=1;		
	}
	if(v[rad].size()>0 && nr==1)
		zvon[rad]++;
}		

int main()
{
	int t,n,i,a,b,j;
	FILE *f=fopen("zvon.in","r");
	FILE *g=fopen("zvon.out","w");
	fscanf(f,"%i",&t);	

	for(i=0;i<t;i++)
	{
		fscanf(f,"%i\n",&n);
		for(i=0;i<n;i++)
			v[i].clear();
		for(j=0;j<n-1;j++)
		{
			fscanf(f,"%i %i\n",&a,&b);
			v[a-1].push_back(b-1);
		}
		dfs(0);
		fprintf(g,"%i\n",zvon[0]);
	}
	fclose(f);
	fclose(g);
	return 0;
}