Pagini recente » Cod sursa (job #3295323) | Cod sursa (job #2064088) | Cod sursa (job #82575) | Cod sursa (job #1386357) | Cod sursa (job #1436419)
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#define Nmax 100005
std::ifstream in("zvon.in");
std::ofstream out("zvon.out");
std::vector<int> G[Nmax];
int DFS(int node) {
std::multiset<int> S;
for (int i = 0; i < G[node].size(); i++) {
int nextNode = G[node][i];
S.insert(DFS(nextNode));
}
int result = 0, cnt = 1;
for (std::set<int> :: reverse_iterator it = S.rbegin(); it != S.rend(); it++) {
result = std::max(result, *it + cnt);
cnt++;
}
return result;
}
int main() {
int t;
in >> t;
while (t--) {
int N;
in >> N;
for (int i = 1; i <= N;i ++)
G[i].clear();
for (int i = 1; i < N; i++) {
int x, y;
in >> x >> y;
G[x].push_back(y);
}
out << DFS(1) << "\n";
}
}