Pagini recente » Cod sursa (job #1690198) | Cod sursa (job #2141746) | Cod sursa (job #1140980) | Cod sursa (job #2212047) | Cod sursa (job #193604)
Cod sursa(job #193604)
#include <cstdio>
#include <string.h>
#include <algorithm>
#define IN "zvon.in"
#define OUT "zvon.out"
#define N_MAX 100001
using namespace std;
inline int mod(int x) { if(x<0) return 0; return x;}
int Tt[N_MAX],T[N_MAX],niv[N_MAX],sub[N_MAX];
int a[N_MAX][300];
int n,teste;
bool comp (const int x, const int y)
{
if(T[x]>T[y])
return 1;
return 0;
}
void scan()
{
freopen(IN, "r",stdin);
freopen(OUT, "w",stdout);
scanf("%d", &teste);
}
void df(int x)
{
int y;
for(int i=1;i<=a[x][0];++i)
{
y=a[x][i];
df(y);
}
sort(a[x]+1,a[x]+a[x][0]+1, comp);
for(int i=1;i<=a[x][0];++i)
{
y=a[x][i];
T[x]=max(T[x],i+T[y]);
}
}
void dfs(int x)
{
for(int i=1;i<=a[x][0];++i)
{
int y=a[x][i];
Tt[y]=i+Tt[x];
df(y);
}
}
void solve()
{
int max,rez;
for(int ti=1;ti<=teste;++ti)
{
memset(Tt, 0, sizeof(Tt));
memset(T, 0, sizeof(T));
//rez=max=0;
int x,y;
scanf("%d", &n);
for(int i=1;i<=n;++i)
a[i][0]=0,T[i]=0,Tt[i]=0;
//niv[1]=0;
for(int i=1;i<n;++i)
{
scanf("%d%d", &x,&y);
a[x][++a[x][0]]=y;
}
df(1);
//for(int i=1;i<n;++i)
// sort(a[i]+1,a[i]+a[i][0]+1, comp);
/*if(ti==3) for(int i=1;i<n;++i)
{
for(int j=1;j<=a[i][0];++j)
printf("%d ",a[i][j]);
printf("\n");
}*/
//dfs(1);
//rez+=max;
/*
for(int i=1;i<=n;++i)
printf("%d ",T[i]);
*/
printf("%d\n",T[1]);
}
}
int main()
{
scan();
solve();
return 0;
}