Pagini recente » Cod sursa (job #890790) | Cod sursa (job #1139737) | Cod sursa (job #1523154) | Cod sursa (job #491446) | Cod sursa (job #1211664)
#include <fstream>
#include <algorithm>
#include <bitset>
#include <cstring>
#define rint register int
#define pb push_back
const char IN [] = "zvon.in";
const char OUT [] = "zvon.out";
const int MAX = 100014;
using namespace std;
ifstream fin ( IN );
ofstream fout ( OUT );
int tmin[MAX];
vector <int> gr[MAX];
bool cmp ( const int a , const int b){
return tmin[a]>tmin[b];
}
void dfs(int nod);
int main( )
{
int t;
fin >> t;
while( t -- ){
memset(tmin,0,sizeof(tmin));
int n;
fin >> n;
for( rint i = 1 ; i <= n ; ++ i )
gr[i].clear();
for( rint i = 1 ; i < n ; ++ i ){
int x , y;
fin >> x >> y ;
gr[x].pb(y);
}
dfs(1);
fout << tmin[1] << '\n';
}
return 0;
}
void dfs(int nod)
{
for( rint i = 0 ; i < (int) gr[nod].size( ) ; ++ i )
dfs ( gr[nod][i] );
sort( gr[nod].begin( ),gr[nod].end( ),cmp );
tmin[nod] = 0;
for( rint i = 0 ; i < (int) gr[nod].size( ) ; ++ i ){
int fata = i + 1 + tmin[gr[nod][i]] ;
if(tmin[nod]<fata)
tmin[nod] = fata ;
}
}