Cod sursa(job #1453279)

Utilizator EpictetStamatin Cristian Epictet Data 23 iunie 2015 10:18:11
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <set>
#include <vector>
#include <cstring>

#define Nmax 100010

using namespace std;

ifstream fin ("zvon.in");
ofstream fout ("zvon.out");

int T, N, A[Nmax];
vector < int > V[Nmax];

void Reset_Values()
{
	memset(A, 0, sizeof(A));
	for (int i = 1; i <= N; i++) V[i].clear();
}

int DFS(int nod)
{
	multiset < int > H;
	
	for (vector < int > :: iterator it = V[nod].begin(); it != V[nod].end(); it++)
	{
		H.insert(DFS(*it));
	}
	
	int result = 0, cnt = 1;
	for (set < int > :: reverse_iterator it = H.rbegin(); it != H.rend(); it++)
	{
		result = max (result, *it + cnt);
		cnt ++;
	}
	
	return result;
}

int main()
{
	fin >> T;
	while (T--)
	{
		Reset_Values();
		fin >> N;
		for (int i = 1, x, y; i < N; i++)
		{
			fin >> x >> y;
			V[x].push_back(y);
		}
		
		fout << DFS(1) << '\n';
	}
	
	return 0;
}