Pagini recente » Cod sursa (job #1102109) | Cod sursa (job #1808033) | Cod sursa (job #2886384) | Cod sursa (job #761928) | Cod sursa (job #157205)
Cod sursa(job #157205)
#include "cstdio"
#include "vector"
#include "algorithm"
#define fin "zvon.in"
#define fout "zvon.out"
using namespace std;
int T,n;
vector<int> g[10000];
int tmp[10000];
bool cmp (const int& a,const int& b)
{
return a>b;
}
void zvon(int x)
{
vector<int> subaltern;
for (vector<int>::iterator it = g[x].begin(); it!=g[x].end(); it++)
{
zvon(*it);
subaltern.push_back(tmp[*it]);
}
sort(subaltern.begin(),subaltern.end(),cmp);
tmp[x]=0;
int i=1;
for (vector<int>::iterator it = subaltern.begin(); it!=subaltern.end(); it++, i++)
{
if (tmp[x]<*it+i)
tmp[x]=*it+i;
}
}
void citire()
{
freopen(fin,"r",stdin);
scanf("%d ",&T);
while(T>0)
{
T--;
scanf("%d ",&n);
for (int i=0;i<n;i++)
g[i].clear();
for (int i=0;i<n-1;i++)
{
int x,y;
scanf("%d %d",&x,&y);
g[x].push_back(y);
}
zvon(1);
printf("%d\n",tmp[1]);
}
fclose(stdin);
}
int main()
{
freopen(fout,"w",stdout);
citire();
fclose(stdout);
return 0;
}