Pagini recente » Cod sursa (job #709768) | Cod sursa (job #228026) | Cod sursa (job #331684) | Cod sursa (job #1792949) | Cod sursa (job #983614)
Cod sursa(job #983614)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define Nmax 100005
vector <int> timp(Nmax);
vector <int> G[Nmax];
class cmp
{
public:
bool operator()( const int &a, const int &b )
{
return timp[a] > timp[b];
}
};
void DFS( int node )
{
for ( unsigned i = 0; i < G[node].size(); ++i )
DFS( G[node][i] );
timp[node] = 0;
sort( G[node].begin(), G[node].end(), cmp() );
for ( unsigned i = 0; i < G[node].size(); ++i )
timp[node] = max( timp[node], timp[ G[node][i] ] + int(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 << timp[1] << "\n";
for ( int i = 1; i <= N; ++i )
G[i].clear();
}
f.close();
g.close();
return 0;
}