Pagini recente » Cod sursa (job #3174254) | Cod sursa (job #442498) | Cod sursa (job #768285) | Cod sursa (job #1526077) | Cod sursa (job #1474278)
#include <cstdio>
#include <vector>
#define LIM 100023
using namespace std;
int pos,n,vis[LIM];
vector<int>adj[LIM];
struct qu
{
int nod;
int dist;
}a[LIM];
void bfs(int inc)
{
for(int i=1;i<=n;i++)
{
a[i].nod=0;
a[i].dist=0;
vis[i]=0;
}
pos=2;
a[1].nod=inc;
vis[inc]=1;
for(int i=1;i<=n;i++)
{
vector<int>::iterator it;
for(it=adj[a[i].nod].begin();it!=adj[a[i].nod].end();++it)
{
if(vis[*it]==0)
{
vis[*it]=1;
a[pos].nod=*it;
a[pos].dist=a[i].dist+1;
++pos;
}
}
}
}
int main()
{
freopen ("darb.in","r",stdin);
freopen ("darb.out","w",stdout);
scanf("%d",&n);
int x,y;
for(int i=1;i<n;i++)
{
scanf("%d%d",&x,&y);
adj[x].push_back(y);
adj[y].push_back(x);
}
bfs(1);
bfs(a[pos-1].nod);
printf("%d\n",a[pos-1].dist+1);
}