Pagini recente » Cod sursa (job #1253881) | Cod sursa (job #1060850) | Cod sursa (job #2596353) | Cod sursa (job #2515582) | Cod sursa (job #1330162)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define Nmax 100005
vector <unsigned> time(Nmax);
vector <int> G[Nmax];
inline int cmp( const int &a, const int &b )
{
return time[a] > time[b];
}
void DFS( int node )
{
for ( unsigned i = 0; i < G[node].size(); ++i )
DFS( G[node][i] );
if ( G[node].empty() )
return;
sort( G[node].begin(), G[node].end(), cmp );
for ( unsigned i = 0; i < G[node].size(); ++i )
time[node] = max( time[node], time[ G[node][i] ] + i + 1 );
}
int T, N;
int main()
{
ifstream f("zvon.in");
ofstream g("zvon.out");
f >> T;
for ( ; T; T-- )
{
f >> N;
for ( int i = 1, a, b; i < N; ++i )
{
f >> a >> b;
G[a].push_back( b );
}
DFS( 1 );
g << time[1] << "\n";
time.clear();
for ( int i = 1; i <= N; ++i )
G[i].clear();
}
f.close();
g.close();
return 0;
}