Pagini recente » Cod sursa (job #1917124) | Cod sursa (job #1580814) | Cod sursa (job #1747759) | Cod sursa (job #2338056) | Cod sursa (job #105175)
Cod sursa(job #105175)
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
using namespace std;
#define Nmax 100002
vector <int>v[Nmax];
int nrt,n,x,y,t[Nmax],h[Nmax];
char rad[Nmax];
bool cmp(int a, int b)
{
return (a>b);
}
void df(int k)
{
t[0]=0;
int nk;
nk=v[k].size();
for (int i=0;i<nk;i++)
df(v[k][i]);
for (int i=0;i<nk;i++)
h[i]=t[v[k][i]];
sort(h,h+nk,cmp);
for (int i=0;i<nk;i++)
t[k]=max(t[k],i+1+h[i]);
}
int main()
{
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
scanf("%d",&nrt);
while (nrt--)
{
scanf("%d",&n);
if (n<=1)
{
printf("0\n");
continue;
}
memset(rad,0,sizeof(rad));
for (int i=1;i<n;i++)
{
scanf("%d %d",&x,&y);
v[x].push_back(y);
rad[y]=1;
}
int r=1;
while (r<=n && rad[r]!=0) r++;
df(r);
printf("%d\n",t[r]);
}
return 0;
}