Pagini recente » Cod sursa (job #1632587) | Cod sursa (job #1889796) | Cod sursa (job #788319) | Cod sursa (job #661787) | Cod sursa (job #915713)
Cod sursa(job #915713)
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
#define nmax 100005
long a, b, n, i, ii, t, tmin[nmax], poz;
vector <long> ma[nmax], v[nmax];
void citire()
{
scanf("%ld",&n);
for (i=1;i<=n;i++)
ma[i].clear();
for (i=1;i<=n-1;i++)
{
scanf("%ld %ld",&a,&b);
ma[a].push_back(b);
}
}
bool cmp(long a, long b)
{ return a>b; }
void dfs(long nod)
{
vector <long> ::iterator it;
v[nod].clear();
for (it=ma[nod].begin();it!=ma[nod].end();it++)
{
dfs(*it);
v[nod].push_back(tmin[*it]);
}
sort(v[nod].begin(),v[nod].end(),cmp);
tmin[nod]=0; poz=0;
for (it=v[nod].begin();it!=v[nod].end();it++)
{
poz++;
if (tmin[nod]<*it+poz)
tmin[nod]=*it+poz;
}
}
int main()
{
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
scanf("%ld",&t);
for (ii=1;ii<=t;ii++)
{
citire();
dfs(1);
printf("%ld\n",tmin[1]);
}
return 0;
}