Pagini recente » Cod sursa (job #1173333) | Cod sursa (job #2891859) | Cod sursa (job #624258) | Cod sursa (job #2501630) | Cod sursa (job #2148856)
#include <bits/stdc++.h>
using namespace std;
const int MAX = 100005;
vector < int > myVector[MAX];
int Cost[MAX];
int T,N;
inline void scanData()
{
scanf("%d", &N);
for ( int i = 1; i <= N ; ++i)
{
myVector[i].clear();
Cost[i] = 0;
}
for ( int i = 1; i <= N-1 ; ++i)
{
int x,y;
scanf("%d%d", &x,&y);
myVector[x].push_back(y);
}
}
inline bool CMP(int a, int b)
{
return Cost[a] > Cost[b];
}
void DFS(int nod)
{
for ( auto x : myVector[nod])
DFS(x);
if(myVector[nod].size())
{
sort(myVector[nod].begin() , myVector[nod].end() , CMP);
for(int k = 0 ; k < myVector[nod].size() ; ++k)
Cost[nod] = max(Cost[nod] , Cost[myVector[nod][k]] +k + 1);
}
}
int main()
{
freopen("zvon.in", "r" ,stdin);
freopen("zvon.out" , "w" ,stdout);
scanf("%d", &T);
for ( int i = 1; i <= T ; ++i)
{
scanData();
DFS(1);
printf("%d\n", Cost[1]);
}
}