Pagini recente » Cod sursa (job #2103811) | Cod sursa (job #1095029) | Cod sursa (job #2303109) | Cod sursa (job #1960643) | Cod sursa (job #104169)
Cod sursa(job #104169)
#define _CRT_SECURE_NO_DEPRECATE
#include <cstdio>
#include <map>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
const int MAX_N = 100001;
int T[MAX_N], st[MAX_N], M, N;
struct neighb {
int nn;
deque<int> ne;
} E[MAX_N];
bool Compare(int a, int b) {
return (a > b);
}
int DepthFirst(int i) {
if (E[i].nn == 0)
return 0;
vector<int> Td;
int j;
for (j = 0; j < E[i].nn; ++ j)
Td.push_back(DepthFirst(E[i].ne[j]));
sort(Td.begin(), Td.end(), Compare);
int res = 0;
for (j = 0; j < E[i].nn; ++ j)
if (res < (j + 1) + Td[j])
res = (j + 1) + Td[j];
return res;
}
int main() {
freopen("zvon.in", "r", stdin);
freopen("zvon.out", "w", stdout);
int t, v1, v2, i, j;
multimap<int, int>::iterator it, jt;
scanf("%d", &t);
for (; t > 0; -- t) {
scanf("%d", &N);
for (i = 0; i < N; ++ i) {
E[i].nn = 0;
E[i].ne.clear();
}
M = N - 1;
for (i = 0; i < M; ++ i) {
scanf("%d %d", &v1, &v2);
E[v1 - 1].nn ++;
E[v1 - 1].ne.push_back(v2 - 1);
}
printf("%d\n", DepthFirst(0));
}
return 0;
}