Pagini recente » Cod sursa (job #1244740) | Cod sursa (job #441468) | Cod sursa (job #284340) | Cod sursa (job #1652181) | Cod sursa (job #1155432)
/*
Keep It Simple!
*/
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include<cstdio>
#include<vector>
#include<algorithm>
#include<cstring>
#define MaxN 100001
#define MaxV(a,b) ((a)>(b)?(a):(b))
using namespace std;
int T,N,x,y;
vector<int> G[MaxN];
int Dp[MaxN];
bool cmp(int first,int second)
{
return (Dp[first] > Dp[second]);
}
void DFS(int node)
{
for (size_t i = 0; i < G[node].size(); i++)
DFS(G[node][i]);
sort(G[node].begin(), G[node].end() , cmp);
for (size_t i = 0; i < G[node].size(); i++)
Dp[node] = MaxV(Dp[node],Dp[G[node][i]] + (int)i + 1);
}
int main()
{
freopen("zvon.in", "r", stdin);
freopen("zvon.out", "w", stdout);
scanf("%d", &T);
while (T--)
{
scanf("%d", &N);
for (int i = 1; i < N; i++)
{
scanf("%d%d", &x, &y);
G[x].push_back(y);
}
DFS(1);
printf("%d\n", Dp[1]);
memset(Dp, 0, sizeof Dp);
memset(G, 0, sizeof G);
}
return 0;
}