Pagini recente » Cod sursa (job #2038065) | Cod sursa (job #42818) | Cod sursa (job #2909322) | Cod sursa (job #1770308) | Cod sursa (job #2101684)
#include<bits/stdc++.h>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
vector<int>L[100001];
int n,D;
int viz[100001];
void citire(){int i,x,y;
in>>n;
for(i=1;i<n;i++){
in>>x>>y;
L[x].push_back(y);
L[y].push_back(x);
}}
void bfs(int x){int q[100001];
viz[x]=1;
int p,u,i,y,z;
p=u=1;
q[u]=x;
while(p<=u){
y=q[p++];
for(i=0;i<L[y].size();i++){
z=L[y][i];
if(!viz[z]){
viz[z]=viz[y]+1;
q[++u]=z;}
}
}
}
int main(){int maxx,x,poz,i;
citire();
bfs(1);
for(i=2,maxx=1;i<=n;++i)
if(viz[i]>maxx)maxx=viz[i],poz=i;
memset(viz,0,sizeof(viz));
bfs(poz);
for(i=1,maxx=1;i<=n;++i)
if(viz[i]>maxx)maxx=viz[i];
out<<maxx<<"\n";
out.close();
in.close();
return 0;}