Cod sursa(job #101797)

Utilizator sims_glAlexandru Simion sims_gl Data 13 noiembrie 2007 20:51:26
Problema Zvon Scor 100
Compilator cpp Status done
Runda Happy Coding 2007 Marime 0.79 kb
#include <stdio.h>
#include <vector>
#include <algorithm>

using namespace std;

#define nm 100100

int c[nm];
vector<int> mat[nm];

int comp(int x, int y)
{
	return c[x] > c[y];
}

void go(int nod)
{
	int n = mat[nod].size();

	for (int i = 0; i < n; ++i)
		go(mat[nod][i]);

	sort(mat[nod].begin(), mat[nod].end(), comp);
	c[nod] = 0;

	for (int i = 0; i < n; ++i)
		if (c[nod] < c[mat[nod][i]] + i + 1)
			c[nod] = c[mat[nod][i]] + i + 1;
}

int main()
{
	int T, n, x, y;

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

	scanf("%d", &T);

	for (int t = 1; t <= T; ++t) {
		scanf("%d", &n);

		for (int i = 1; i <= n; ++i)
			mat[i].clear();

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

		go(1);

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

	return 0;
}