Cod sursa(job #107194)

Utilizator sima_cotizoSima Cotizo sima_cotizo Data 19 noiembrie 2007 15:39:46
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;

vector < long > A[100010];
long n,i,x,y,t;


long DF(long x) {
	vector<long>::iterator it, it2;
	vector<long> pui;
	long nr,i;
	for (it=A[x].begin(); it!=A[x].end(); it++) {
		pui.push_back( DF(*it) );
	}
	sort(pui.begin(), pui.end(), greater<long>());
	for (nr=0, i=1, it2=pui.begin(); it2!=pui.end(); ++it2, ++i) {
		nr = max(nr,i + *it2);
	}
	return nr;
}

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

	scanf("%ld", &t);
	while ( t-- ) {
		scanf("%ld", &n);
		for (i=0; i<n-1; ++i) {
			scanf("%ld %ld", &x, &y);
			A[x].push_back(y);
		}
		printf("%ld\n", DF(1));
		for (i=1; i<=n;++i)
			A[i].clear();
	}

	fclose(stdout);
	fclose(stdin);
	return 0;
}