Cod sursa(job #197521)

Utilizator marinMari n marin Data 4 iulie 2008 17:11:46
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <algorithm>
#include <stdio.h>
#include <vector>
#define DIM 100002
using namespace std;

int TMIN[DIM];

vector<int> F[DIM];
int T,x,y,n;

int cmp(const int a, const int b){
	return TMIN[a]<TMIN[b];
}
 
void df(int x) {
	int u;
	u=(int)F[x].size();
	for (int i=0; i<u; ++i) {
		df(F[x][i]);
	}
	sort(F[x].begin(), F[x].end(), cmp);
	TMIN[x]=0;
	for (int k=0; k<u; ++k) {
		int tm = TMIN[F[x][k]]+u-k;
		if (TMIN[x]<tm)
			TMIN[x]=tm;
	}
 }
 
int main() {
    FILE *f = fopen("zvon.in","r");
	FILE *g = fopen("zvon.out","w");
	fscanf(f, "%d", &T);
	int i;
	while (T) {
		fscanf(f,"%d",&n);
		for (i=1; i<=n; ++i)
			F[i]=F[0];
		for (i=0; i<n-1; ++i){
			fscanf(f,"%d %d",&x,&y);
			F[x].push_back(y);
		}
		df(1);
		fprintf(g,"%d\n",TMIN[1]);
		T--;
	}
	fclose(f); fclose(g);
	return 0;
 }