Pagini recente » Cod sursa (job #1599374) | Cod sursa (job #2771336) | Cod sursa (job #1753803) | Cod sursa (job #1565298) | Cod sursa (job #1411242)
#include <cstdio>
#include <vector>
#include <queue>
#include <cstring>
#define inf 0x3f3f3f3f
#define nmax 100005
using namespace std;
int d[nmax],mxm,pozmxm,n;
vector<int> g[nmax];
queue<int> q;
void citire()
{
int x,y;
scanf("%d",&n);
for(int i=1;i<=n-1;i++)
{
scanf("%d%d",&x,&y);
g[x].push_back(y);
g[y].push_back(x);
}
memset(d,inf,sizeof(d));
}
void bfs(int nod)
{
int k;
d[nod]=0;
q.push(nod);
mxm=-1;
while(!q.empty())
{
k=q.front();
q.pop();
if(d[k]>mxm)
{
mxm=d[k];
pozmxm=k;
}
for(vector<int>::iterator ii=g[k].begin();ii!=g[k].end();++ii)
if(d[*ii]==inf)
{
d[*ii]=d[k]+1;
q.push(*ii);
}
}
}
int main()
{
freopen("darb.in","r",stdin);
freopen("darb.out","w",stdout);
citire();
bfs(1);
memset(d,inf,sizeof(d));
bfs(pozmxm);
printf("%d\n",mxm+1);
return 0;
}