Pagini recente » Cod sursa (job #196585) | Cod sursa (job #650638) | Cod sursa (job #118453) | Cod sursa (job #252164) | Cod sursa (job #101797)
Cod sursa(job #101797)
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
#define nm 100100
int c[nm];
vector<int> mat[nm];
int comp(int x, int y)
{
return c[x] > c[y];
}
void go(int nod)
{
int n = mat[nod].size();
for (int i = 0; i < n; ++i)
go(mat[nod][i]);
sort(mat[nod].begin(), mat[nod].end(), comp);
c[nod] = 0;
for (int i = 0; i < n; ++i)
if (c[nod] < c[mat[nod][i]] + i + 1)
c[nod] = c[mat[nod][i]] + i + 1;
}
int main()
{
int T, n, x, y;
freopen("zvon.in", "r", stdin);
freopen("zvon.out", "w", stdout);
scanf("%d", &T);
for (int t = 1; t <= T; ++t) {
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
mat[i].clear();
for (int i = 1; i < n; ++i) {
scanf("%d%d", &x, &y);
mat[x].push_back(y);
}
go(1);
printf("%d\n", c[1]);
}
return 0;
}