Pagini recente » Cod sursa (job #2600411) | Cod sursa (job #873561) | Cod sursa (job #2454343) | Cod sursa (job #35088) | Cod sursa (job #1093904)
#include<cstdio>
#include<vector>
#include<deque>
#include<cstring>
using namespace std;
const int NMAX = 100005;
int N,Nod,Sol;
int Viz[NMAX];
vector<int> V[NMAX];
deque<int> Q;
void BFS(int x)
{
vector<int>::iterator it;
memset(Viz,0,sizeof(Viz));
Nod=Sol=0;
Q.push_back(x);
Viz[x]=1;
for(; !Q.empty();)
{
x=Q.front();
Q.pop_front();
for(it=V[x].begin(); it!=V[x].end(); it++)
{
if(Viz[*it]) continue;
Q.push_back(*it);
Viz[*it]=Viz[x]+1;
}
if(Viz[x]>Sol)
{
Nod=x;
Sol=Viz[x];
}
}
}
int main()
{
int i,x,y;
freopen("darb.in","r",stdin);
freopen("darb.out","w",stdout);
scanf("%d",&N);
for(i=1; i<=N-1; i++)
{
scanf("%d%d",&x,&y);
V[x].push_back(y);
V[y].push_back(x);
}
BFS(1);
BFS(Nod);
printf("%d\n",Sol);
return 0;
}