Cod sursa(job #1453264)

Utilizator EpictetStamatin Cristian Epictet Data 23 iunie 2015 10:02:25
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <set>
#include <algorithm>
#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];

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

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

void DFS(int nod)
{
	for (vector < int > :: iterator it = V[nod].begin(); it != V[nod].end(); it++)
	{
		DFS(*it);
	}
	
	sort (V[nod].begin(), V[nod].end(), cmp);
	
	int cnt = 1;
	for (vector < int > :: iterator it = V[nod].begin(); it != V[nod].end(); it++)
	{
		A[nod] = max (A[nod], A[*it] + cnt);
		cnt ++;
	}
}

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);
		}
		
		DFS(1);
		
		fout << A[1] << '\n';
	}
	
	return 0;
}