Cod sursa(job #107703)

Utilizator IeewIordache Bogdan Ieew Data 20 noiembrie 2007 11:11:06
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#include <stdlib.h>
int t;
long n;
FILE *f,*g;
long *a[10005],sol;

int sortf(const void*x, const void*y)
{long xx,yy;
xx=*(long*)x;
yy=*(long*)y;
if(a[yy][0]>a[xx][0])return 1;
if(a[yy][0]<a[xx][0])return -1;
return 0;
}

void rec(long nod,long t)
{long i;
if(t>sol)sol=t;
for(i=1;i<=a[nod][0];i++)
	rec(a[nod][i],++t);
}

int main()
{long i,j,x,y;
f=fopen("zvon.in","r");
g=fopen("zvon.out","w");
fscanf(f,"%d",&t);
for(i=1;i<=t;i++)
{
fscanf(f,"%ld",&n);
if(n==1){fprintf(g,"%d%c",0,'\n');continue;}
sol=0;
for(j=1;j<=n;j++)
	{
	delete a[j];
	a[j]=(long*)malloc(sizeof(long));
	a[j][0]=0;
	}
for(j=1;j<n;j++)
	//{
	fscanf(f,"%ld%ld",&x,&y);
/*	a[x][0]++;
	a[x]=(long*)realloc(a[x],sizeof(long)*(a[x][0]+1));
	a[x][a[x][0]]=y;
	}
for(j=1;j<=n;j++)
	if(a[j][0])qsort(a[j]+1,a[j][0],sizeof(a[j]),sortf);
rec(1,0);*/
fprintf(g,"%ld%c",sol,'\n');
}
fclose(f);
fclose(g);
return 0;
}