Pagini recente » Cod sursa (job #810178) | Cod sursa (job #2051631) | Cod sursa (job #2921046) | Cod sursa (job #1381296) | Cod sursa (job #2275743)
#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>
#define MAXN 1000000
using namespace std;
vector<int> p[MAXN+5];
queue<int> q;
int lg[MAXN+5], viz[MAXN+5], l, d;
void bfs( int plecare )
{
q.push(plecare);
lg[plecare]=1;
viz[plecare]=1;
while( !q.empty() )
{
int k=q.front();
for( int i=0;i<p[k].size();i++ )
if( !viz[p[k][i]] )
{
q.push(p[k][i]);
lg[p[k][i]]=lg[k]+1;
viz[p[k][i]]=1;
d=lg[p[k][i]];
l=p[k][i];
}
q.pop();
}
}
int main()
{
freopen( "darb.in", "r", stdin );
freopen( "darb.out", "w", stdout );
int n, a, b;
scanf( "%d", &n );
for( int i=1;i<=n;i++ )
{
scanf( "%d%d", &a, &b );
p[a].push_back(b);
p[b].push_back(a);
}
bfs(1);
memset(lg,0,n+100);
memset(viz,0,n+100);
bfs(l);
printf( "%d", d );
return 0;
}