Pagini recente » Cod sursa (job #939091) | Cod sursa (job #847652) | Cod sursa (job #723183) | Cod sursa (job #2183260) | Cod sursa (job #1482175)
#include <cstdio>
#include <vector>
#define N 100001
#include<algorithm>
std::vector <int> v[N];
int val[N];
void dfs(int nod){
int i;
for(i=0;i<v[nod].size();i++)
dfs(v[nod][i]);
std::sort(v[nod].begin(),v[nod].end());
int nr=v[nod].size()-1;
for(i=nr;i>=0;i--)
if(val[v[nod][i]]+nr-i>val[nod])
val[nod]=val[v[nod][i]]+nr-i+1;
}
int main()
{
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
int t;
scanf("%d",&t);
while(t){
int n,i;
scanf("%d",&n);
val[n]=0;
for(i=0;i<n-1;i++){
int x,y;
val[i+1]=0;
v[i+1].clear();
scanf("%d%d",&x,&y);
v[x].push_back(y);
}
dfs(1);
printf("%d\n",val[1]);
t--;
}
return 0;
}