Pagini recente » Cod sursa (job #2795141) | Cod sursa (job #11185) | Cod sursa (job #1129306) | Cod sursa (job #2813245) | Cod sursa (job #2322528)
#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 ] ;
vector < bool > viz ( NR , false ) ;
int dfs ( int nod )
{
viz [ nod ] = true ;
int maxim = 0 ;
for ( size_t i = 0 ; i < v [ nod ].sz ; ++ i )
if ( !viz [ v[ nod ][ i ] ] ) maxim = max ( maxim , dfs ( v [ nod ][ i ] ) ) ;
return maxim + 1 ;
}
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 ) ; }
int max1 = 0 , max2 = 0 ;
viz [ 1 ] = true ;
for( size_t i = 0 ; i < v [ 1 ].sz ; ++ i )
{
int dist = dfs ( v [ 1 ][ i ] ) ;
if ( dist > max1 ) max2 = max1 , max1 = dist ;
else
{
if ( dist > max2 ) max2 = dist ;
}
}
return g << 1 + max1 + max2 << "\n" , 0 ;
}