Pagini recente » Cod sursa (job #2982428) | Cod sursa (job #1817779) | Cod sursa (job #2982441) | Cod sursa (job #2817330) | Cod sursa (job #286097)
Cod sursa(job #286097)
#include <cstdio>
#include <algorithm>
using namespace std;
int t,n,a,b;
struct nod
{
int inf;
nod *urm;
} *g[100100];
void baga(int x, int y)
{
nod *p=new nod;
p->inf=y;
p->urm=g[x];
g[x]=p;
}
int timp(int x)
{
if(!g[x])
return 0;
else
{
int l[n],nr=0;
for(nod *i=g[x];i;i=i->urm)
l[nr++]=timp(i->inf);
sort(l,l+nr);
int max=0;
for(int j=0;j<nr;j++)
if((l[j]+nr-j)>max)
max=l[j]+nr-j;
return max;
}
}
int main()
{
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
scanf("%d",&t);
for(int i=0;i<t;i++)
{
scanf("%d",&n);
if(n==1)
printf("0\n");
else
{
for(int j=0;j<n-1;j++)
{
scanf("%d%d",&a,&b);
baga(a,b);
}
printf("%d\n",timp(1));
}
for(int j=0;j<n;j++)
g[j]=NULL;
}
fclose(stdout);
return 0;
}