Cod sursa(job #1330162)

Utilizator wGEORGEWGeorge Cioti wGEORGEW Data 30 ianuarie 2015 14:31:01
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#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;
}