Pagini recente » Cod sursa (job #1515077) | Cod sursa (job #1920252) | Cod sursa (job #2831590) | Cod sursa (job #2314213) | Cod sursa (job #194147)
Cod sursa(job #194147)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
#define Nmax 100015
#define pb push_back
#define sz(a) (int)((a).size())
int n;
vector<int> lv[Nmax];
int d[Nmax];
void citire()
{
int i, a, b;
scanf("%d\n", &n);
for (i = 1; i <= n; ++i)
vector<int>().swap(lv[i]);
for (i = 1; i < n; ++i)
{
scanf("%d %d\n", &a, &b);
lv[a].pb(b);
}
}
int cmp(const int a, const int b)
{
return d[a] > d[b];
}
void df(int nod)
{
int i;
for (i = 0; i < sz(lv[nod]); ++i)
df(lv[nod][i]);
d[nod] = 0;
sort(lv[nod].begin(), lv[nod].end(), cmp);
for (i = 0; i < sz(lv[nod]); ++i)
d[nod] = max(d[nod], d[lv[nod][i]] + i + 1);
}
void solve()
{
df(1);
printf("%d\n", d[1]);
}
int main()
{
freopen("zvon.in", "r", stdin);
freopen("zvon.out", "w", stdout);
int i, t;
scanf("%d\n", &t);
for (i = 1; i <= t; ++i)
{
citire();
solve();
}
return 0;
}