Pagini recente » Cod sursa (job #722691) | Cod sursa (job #2298188) | Cod sursa (job #2418562) | Cod sursa (job #1453279) | Cod sursa (job #2777479)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
const int N = 1e5 + 5;
vector<int> fii[N];
int dp[N];
bool cmp(int x, int y) {
return dp[x] > dp[y];
}
void dfs(int nod) {
dp[nod] = 0;
for (auto sub : fii[nod])
dfs(sub);
sort(fii[nod].begin(), fii[nod].end(), cmp);
int i = 1;
for (auto sub : fii[nod]) {
dp[nod] = max(dp[nod], i + dp[sub]);
++i;
}
}
int main() {
ifstream cin("zvon.in");
ofstream cout("zvon.out");
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
for (int i = 1; i <= n; ++i)
fii[i].clear();
for (int i = 0; i < n - 1; ++i) {
int x, y;
cin >> x >> y;
fii[x].push_back(y);
}
dfs(1);
cout << dp[1] << "\n";
}
cin.close();
cout.close();
return 0;
}