Pagini recente » Cod sursa (job #432808) | Borderou de evaluare (job #342912) | Cod sursa (job #2737256) | Cod sursa (job #1200758) | Cod sursa (job #2541974)
#include <bits/stdc++.h>
#define Nmax 100005
#define nr first
#define pos second
using namespace std;
ifstream f("zvon.in");
ofstream g("zvon.out");
int N, T, ans;
int dp[Nmax], t[Nmax], v[Nmax];
vector<int> G[Nmax];
void DFS(int node) {
for (auto it: G[node])
DFS(it);
int K = 0;
for (auto it: G[node])
v[++K] = dp[it];
sort(v + 1, v + K + 1);
for (int i = 1; i <= K; ++i)
dp[node] = max(dp[node], v[i] + K - i + 1);
}
int main()
{
f >> T;
for (int tt = 1; tt <= T; ++tt) {
f >> N;
for (int i = 1; i <= N; ++i)
dp[i] = t[i] = 0, G[i].clear();
for (int i = 1; i < N; ++i) {
int x, y;
f >> x >> y;
G[x].push_back(y);
}
DFS(1);
g << dp[1] << '\n';
}
return 0;
}