Pagini recente » Cod sursa (job #159514) | Cod sursa (job #2642541) | Cod sursa (job #2827990) | Cod sursa (job #984226) | Cod sursa (job #1240992)
#include <iostream>
#include <cstdio>
#include <queue>
#include <vector>
#include <cstring>
const int MAX=1000000;
#define pb push_back
using namespace std;
int n , d[MAX] , dmax ,last ;
queue <int> q;
vector <int> arb[MAX];
void bfs (int x)
{
memset (d , 0 , MAX ) ;
q.push(x);
d[x]=1;
while (!q.empty())
{
int w=q.front();
q.pop();
for ( int i = 0 ; i < ( int ) arb[w].size() ; ++i ){
if ( d[arb[w][i]] == 0 ) {
d[arb[w][i]]=1+d[w];
q.push(arb[w][i]);
}
if (d[arb[w][i]]>dmax){dmax=d[arb[w][i]];
last = arb[w][i] ;
}
}
}
}
int main()
{
freopen ("darb.in" , "r" , stdin ) ;
freopen ("darb.out" , "w" , stdout ) ;
scanf ("%d" , &n ) ;
for ( int i = 1 ; i < n ; ++i )
{
int x , y ;
scanf ("%d%d" , &x , &y ) ;
arb[x].pb(y);
arb[y].pb(x);
}
bfs(1);
bfs(last);
printf ("%d" , dmax );
return 0;
}