Cod sursa(job #1155432)

Utilizator taigi100Cazacu Robert taigi100 Data 26 martie 2014 21:46:13
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
/*
	Keep It Simple!
*/

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

#include<cstdio>
#include<vector>
#include<algorithm>
#include<cstring>

#define MaxN 100001
#define MaxV(a,b) ((a)>(b)?(a):(b))
using namespace std;

int T,N,x,y;
vector<int> G[MaxN];
int Dp[MaxN];

bool cmp(int first,int second)
{
	return (Dp[first] > Dp[second]);
}

void DFS(int node)
{
	for (size_t i = 0; i < G[node].size(); i++)
		DFS(G[node][i]);

	sort(G[node].begin(), G[node].end() , cmp);
	
	for (size_t i = 0; i < G[node].size(); i++)
		Dp[node] = MaxV(Dp[node],Dp[G[node][i]] + (int)i + 1);
}

int main()
{
	freopen("zvon.in", "r", stdin);
	freopen("zvon.out", "w", stdout);

	scanf("%d", &T);

	while (T--)
	{
		scanf("%d", &N);

		for (int i = 1; i < N; i++)
		{
			scanf("%d%d", &x, &y);
			G[x].push_back(y);
		}

		DFS(1);

		printf("%d\n", Dp[1]);

		memset(Dp, 0, sizeof Dp);
		memset(G, 0, sizeof G);
	}
	return 0;
}