Pagini recente » Cod sursa (job #641363) | Cod sursa (job #2069564) | Cod sursa (job #1557797) | Cod sursa (job #1274119) | Cod sursa (job #313020)
Cod sursa(job #313020)
#include <algorithm>
#define DIM 100005
using namespace std;
struct nod {int x;
nod *urm;} *lst[DIM];
int n,t;
void add (int a,int b)
{
nod *p=new nod;
p->x=b;
p->urm=lst[a];
lst[a]=p;
}
void read ()
{
int i,x,y;
scanf ("%d",&n);
for (i=1; i<n; ++i)
{
scanf ("%d%d",&x,&y);
add (x,y);
}
}
int df (int val)
{
if (!lst[val])
return 0;
nod *p;
int a[n+1];
int i,m,maxim;
for (p=lst[val], m=0; p; p=p->urm)
a[++m]=df (p->x);
sort (a+1,a+m+1);
for (i=1, maxim=0; i<=m; ++i)
if (a[i]+m-i+1>maxim)
maxim=a[i]+m-i+1;
return maxim;
}
void clean ()
{
int i;
for (i=1; i<=n; ++i)
lst[i]=NULL;
}
int main ()
{
freopen ("zvon.in","r",stdin);
freopen ("zvon.out","w",stdout);
int i;
scanf ("%d",&t);
for (i=1; i<=t; ++i)
{
read ();
printf ("%d\n",df (1));
clean ();
}
return 0;
}