Cod sursa(job #105017)

Utilizator hellraizerChiperi Matei hellraizer Data 16 noiembrie 2007 21:51:05
Problema Zvon Scor 0
Compilator cpp Status done
Runda Happy Coding 2007 Marime 0.72 kb
#include <stdio.h>
#include <string.h>

#define N_MAX 100001

int T,N,c[N_MAX],fii[N_MAX],t[N_MAX],max[N_MAX];

int main(){
	int k,i,a,b,p,u;
	FILE *fin=fopen("zvon.in","r");
	fscanf(fin,"%d",&T);
	FILE *fout=fopen("zvon.out","w");
	for (k=1;k<=T;k++){
		fscanf(fin,"%d",&N);
		for (i=1;i<N;i++){
			fscanf(fin,"%d %d",&a,&b);
			fii[a]++;t[b]=a;
		}
		p=u=0;
		for (i=1;i<=N;i++){
			max[i]=0;
			if (fii[i]==0)
				c[++u]=i;
		}
		p=1;
		while (p<=u){
			a=c[p];
			b=t[a];
			if (max[a]+fii[b]>max[b])
				max[b]=max[a]+fii[b];
			fii[b]--;
			if ((fii[b]==0)&&(b!=1))
				c[++u]=b;
			p++;
		}
		fprintf(fout,"%d\n",max[1]);
		memset(t,0,N+1);
	}
	fclose(fin);
	fclose(fout);
	return 0;
}