Pagini recente » Cod sursa (job #1992255) | Cod sursa (job #1230765) | Cod sursa (job #2897107) | Cod sursa (job #1407839) | Cod sursa (job #1365669)
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
#include<set>
#include<map>
#include<cmath>
using namespace std ;
#define maxn 100005
int T, N ;
vector<int> graf[maxn] ;
int timp[maxn] ;
void init()
{
for(int i = 1; i <= N; ++i)
{
graf[i].clear() ;
timp[i] = 0 ;
}
}
bool cmp(int x, int y)
{
return ( timp[x] > timp[y] ) ;
}
void dfs(int nod)
{
int nrvecini = graf[nod].size() ;
for(int i = 0; i < nrvecini; ++i)
{
int vecin = graf[nod][i] ;
dfs(vecin) ;
}
sort( graf[nod].begin(), graf[nod].end(), cmp ) ;
for(int i = 0; i < nrvecini; ++i)
{
int vecin = graf[nod][i] ;
timp[nod] = max( timp[nod], timp[vecin] + i + 1 ) ;
}
}
int main()
{
std::ios_base::sync_with_stdio(false) ;
freopen("zvon.in", "r", stdin);
freopen("zvon.out", "w", stdout);
cin >> T ;
while( T-- )
{
init() ;
cin >> N ;
for(int i = 1; i < N; ++i)
{
int x, y ;
cin >> x >> y ;
graf[x].push_back(y) ;
}
dfs(1) ;
cout << timp[1] << "\n" ;
}
return 0 ;
}