Pagini recente » Cod sursa (job #1158432) | Cod sursa (job #2498355) | Cod sursa (job #504515) | Cod sursa (job #3234932) | Cod sursa (job #107706)
Cod sursa(job #107706)
#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;
}