Pagini recente » Cod sursa (job #2670316) | Cod sursa (job #2651124) | Cod sursa (job #2555635) | Cod sursa (job #2559805) | Cod sursa (job #211574)
Cod sursa(job #211574)
#include<stdio.h>
#include<algorithm>
#include<vector>
#include<string.h>
#define NMAX 100024
using namespace std;
vector < int > Q[NMAX];
int D[NMAX];
bool cmp(const int &A, const int &B)
{
return D[A]>D[B];
}
int max(const int a,const int b)
{
return a>b?a:b;
}
void df(const int nod)
{
int i;
int val=Q[nod].size(),SOL=0;
for(i=0; i!=val; ++i)
df(Q[nod][i]);
D[nod]=0;
if( val )
{
sort(Q[nod].begin(), Q[nod].end(), cmp );
for(i=0; i!=val; ++i)
SOL=max(SOL,D[Q[nod][i]]+i+1);
D[nod]=SOL;
}
}
void erase(const int N)
{
for(int i=1; i<=N; ++i)Q[i].clear();
}
int main()
{
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
int T,N=0;
scanf("%d",&T);
int i,a1,a2;
while( T-- )
{
if( N )
erase(N);
scanf("%d",&N);
for(i=1; i<N; ++i){
scanf("%d%d\n",&a1,&a2);
Q[a1].push_back(a2);
}
df(1);
printf("%d\n",D[1]);
}
return 0;
}