Pagini recente » Cod sursa (job #860669) | Cod sursa (job #1859597) | Cod sursa (job #1075335) | Cod sursa (job #495635) | Cod sursa (job #99497)
Cod sursa(job #99497)
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;
#define maxn 100010
#define pb push_back
#define max(a,b) (a > b ? a : b)
int n;
vector <int> a[maxn];
int g[maxn],p[maxn],c[maxn];
int cmp(int x,int y)
{
return c[x]>c[y];
}
void DFS(int nod)
{
int i;
c[nod]=0;
for (i=0;i<g[nod];i++) DFS(a[nod][i]);
for (i=0;i<g[nod];i++) p[i]=a[nod][i];
sort(p,p+g[nod],cmp);
for (i=0;i<g[nod];i++) c[nod]=max(c[nod],c[p[i]]+i+1);
}
int main()
{
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
int T,i,x,y;
scanf("%d ",&T);
while (T>0)
{
scanf("%d ",&n);
for (i=1;i<n;i++)
{
scanf("%d %d ",&x,&y);
a[x].pb(y);
}
for (i=1;i<=n;i++) g[i]=a[i].size();
DFS(1);
printf("%d\n",c[1]);
for (i=1;i<=n;i++) vector <int> ().swap(a[i]);
T--;
}
return 0;
}