Pagini recente » Cod sursa (job #3186226) | Cod sursa (job #1743247) | Cod sursa (job #1123278) | Cod sursa (job #3290139) | Cod sursa (job #1424305)
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cstring>
#define NMAX 100007
using namespace std;
int T, n, Dp[NMAX];
vector < int > v[NMAX];
bool Cmp(int A, int B){
return Dp[A] > Dp[B];
}
void dfs(int Nod){
for(int i = 0; i < v[Nod].size(); ++i)
dfs(v[Nod][i]);
sort(v[Nod].begin(), v[Nod].end(), Cmp);
for(int i = 0; i < v[Nod].size(); ++i)
Dp[Nod] = max(Dp[Nod], Dp[v[Nod][i]] + i + 1);
}
int main(){
freopen("zvon.in", "r", stdin);
freopen("zvon.out", "w", stdout);
scanf("%d", &T);
while(T){
--T;
scanf("%d", &n);
memset(Dp, 0, sizeof(Dp));
for(int i = 1; i < n; ++i){
v[i].clear();
int x, y;
scanf("%d %d", &x, &y);
v[x].push_back(y);
}
dfs(1);
printf("%d\n", Dp[1]);
}
return 0;
}