Cod sursa(job #657263)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 6 ianuarie 2012 10:54:26
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
int T,n,timp[100100];
vector <int> G[100100];

inline bool Descrescator(int a,int b)
{
	return a>b;
}

inline void DFS(int x)
{
	vector <int>::iterator it;
	vector <int> fii;
	
	for(it=G[x].begin();it!=G[x].end();it++)
		DFS(*it);
	
	for(it=G[x].begin();it!=G[x].end();it++)
		fii.push_back(timp[*it]);
	
	sort(fii.begin(),fii.end(),Descrescator);
	
	int k=1;
	for(it=fii.begin();it!=fii.end();it++)
	{
		timp[x]=max(timp[x],k+*it);
		k++;
	}
}

int main()
{
	int t,i,x,y;
	ifstream fin("zvon.in");
	ofstream fout("zvon.out");
	fin>>T;
	for(t=0;t<T;t++)
	{
		fin>>n;
		for(i=1;i<n;i++)
		{
			fin>>x>>y;
			G[x].push_back(y);
		}
		DFS(1);
		fout<<timp[1]<<"\n";
		for(i=1;i<=n;i++)
		{
			timp[i]=0;
			G[i].clear();
		}
	}
	return 0;
}