Pagini recente » Cod sursa (job #1955860) | Cod sursa (job #229157) | Cod sursa (job #3238969) | Cod sursa (job #1467099) | Cod sursa (job #104144)
Cod sursa(job #104144)
#define _CRT_SECURE_NO_DEPRECATE
#include <cstdio>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
const int MAX_N = 100001;
int T[MAX_N], M, N;
multimap<int, int> E;
bool Compare(int a, int b) {
return (a > b);
}
int DepthFirst(int i) {
multimap<int, int>::iterator it;
it = E.find(i);
if (it == E.end())
return 0;
vector<int> Td;
for (; it != E.end() && it->first == i; ++ it)
Td.push_back(DepthFirst(it->second));
sort(Td.begin(), Td.end(), Compare);
int j, res = 0;
for (j = 0; j < Td.size(); ++ 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;
scanf("%d", &t);
for (; t > 0; -- t) {
E.clear();
scanf("%d", &N);
M = N - 1;
for (i = 0; i < M; ++ i) {
scanf("%d %d", &v1, &v2);
E.insert(pair<int, int>(v1, v2));
}
printf("%d\n", DepthFirst(1));
/*for (it = E.begin(); it != E.end(); ++ it)
printf("%d %d\n", it->first, it->second);
printf("\n");*/
}
return 0;
}