Pagini recente » Cod sursa (job #888349) | Cod sursa (job #2367204) | Cod sursa (job #2239573) | Cod sursa (job #1146535) | Cod sursa (job #104622)
Cod sursa(job #104622)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define NMAX 100001
int t;
long n;
typedef struct _nod{int n; _nod *urm;} nod;
nod *a[NMAX];
long sz=sizeof(nod);
int viz[NMAX];
long rad, max;
long dfs(long node)
{
long max=0,dd=0,t=0;
nod *p=a[node];
while (p)
{
t=dfs(p->n);
if (t==max) ++max;
else if (t > max) max=t;
p=p->urm;
}
if (node==rad) return max;
else return max+1;
}
int main()
{
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
long i, x, y;
nod *p;
for (scanf("%d", &t); t; --t)
{
memset(viz,0,sizeof(viz));
memset(a,NULL,sizeof(a));
scanf("%ld", &n);
for (i=1; i<=n-1; ++i)
{
scanf("%ld %ld", &x, &y);
p=(nod *)malloc(sz);
p->n=y;
p->urm=a[x];
a[x]=p;
viz[y]=1;
}
for (i=1; i<=n && viz[i]; ++i);
rad=i;
printf("%ld\n", dfs(rad));
}
fclose(stdin);
fclose(stdout);
return 0;
}