Pagini recente » Cod sursa (job #2159715) | Cod sursa (job #1546514) | Cod sursa (job #2706566) | Cod sursa (job #2584798) | Cod sursa (job #98914)
Cod sursa(job #98914)
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;
#define maxim(a, b) ((a > b) ? a : b)
#define NMax 100005
int N, D[NMax];
vector<int> G[NMax];
int cmp(const int& a, const int& b)
{
return D[a] > D[b];
}
void df(int nod)
{
int i, sz;
for (i = 0, sz = G[nod].size(); i < sz; i++)
df(G[nod][i]);
D[nod] = 0;
if (sz)
{
sort(G[nod].begin(), G[nod].end(), cmp);
for (i = 0; i < sz; i++)
D[nod] = maxim(D[nod], D[G[nod][i]] + i + 1);
}
}
int main(void)
{
int T, i, u, v;
freopen("zvon.in", "r", stdin);
freopen("zvon.out", "w", stdout);
for (scanf("%d", &T); T; T--)
{
scanf("%d", &N);
for (i = 1; i < N; i++)
{
scanf("%d %d", &u, &v);
G[u].push_back(v);
}
df(1);
printf("%d\n", D[1]);
for (i = 1; i <= N; i++)
G[i].clear();
}
return 0;
}