Cod sursa(job #2322558)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 17 ianuarie 2019 21:28:56
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>
#define pb push_back
#define sz size()
using namespace std ;
const int NR = 100001 ;
ifstream f ("darb.in") ;
ofstream g ("darb.out") ;
vector < int > v [ NR ] ;
int level [ NR ] , last ;
int bfs ( int nod )
{
    vector < bool > viz ( NR , false ) ;
    deque < int > q ;
    q.pb ( nod ) ;
    viz [ nod ] = true ;
    while ( !q.empty() )
    {
        nod = q.front() ;
        for ( size_t i = 0 ; i < v [ nod ].sz ; i ++ )
        {
            if ( !viz [ v[ nod ][ i ] ] )   q.pb ( v [ nod ][ i ] ) , viz  [ v [ nod ][ i ] ] = true , level [ v[ nod ][ i ] ] = level [ nod ] + 1 , last = v[ nod ][ i ] ;
        }
        q.pop_front() ;
    }
}
int main ()
{
    int n ; f >> n ;
    for ( int i = 1 ; i <  n ; ++ i )   { int x , y ; f >> x >> y ; v [ x ].pb ( y ) , v [ y ].pb ( x ) ; }

    bfs ( 1 ) ;
    level [ last ] = 1 ;
    bfs ( last ) ;
    return g << level [ last ] , 0 ;

}