Pagini recente » Cod sursa (job #640208) | Cod sursa (job #2516913) | Cod sursa (job #277164) | Cod sursa (job #2241139) | Cod sursa (job #106410)
Cod sursa(job #106410)
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
const int n_max = 100001;
vector < int > v[n_max];
int d[n_max],
vaz[n_max];
int t, n, i, b, a;
inline int max(int x, int y)
{
if (x > y)
return x;
return y;
}
void df(int x)
{
vector <int>::iterator it;
vector <int> temp;
vaz[x] = 1;
int i;
for (it = v[x].begin(); it!= v[x].end(); ++ it)
{
df(*it);
temp.push_back(d[*it]);
}
sort(temp.begin(), temp.end());
if (v[x].size()>0)
{
d[x] = temp[temp.size()-1] +1;
for (i = temp.size() - 2; i >-1; -- i)
d[x] = max(d[x],temp[i] + temp.size() - i);
}
}
int main()
{
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
scanf("%d", &t);
for (; t>0; --t)
{
scanf("%d", &n);
for (i =1 ; i <= n; ++ i)
{
d[i] = 0;
v[i].clear();
vaz[i] = 0;
}
for (i = 1; i < n; ++ i)
{
scanf("%d %d", &a, &b);
v[a].push_back(b);
}
df(1);
vaz[1] = 1;
printf("%d\n",d[1]);
}
return 0;
}