Pagini recente » Cod sursa (job #136384) | Cod sursa (job #2536364) | Cod sursa (job #646688) | Cod sursa (job #215918) | Cod sursa (job #2251033)
#include <iostream>
#include <fstream>
#include <vector>
#define DIM 200000
using namespace std;
int n,x,y,coada[DIM],p,f[DIM],fv[DIM],q,u,lm,s2,r,st,dist[DIM],maxim;
vector <int> a[DIM];
void umple(int n){
for(int i=0;i<DIM;i++){
f[i]=n;
fv[i]=n;
coada[i]=n;
dist[i]=n;
}
}
int bfs(int s){
lm=0;
f[s]=1;
coada[lm]=s;
while(lm<=p){
q=coada[lm];
for(int i=0;i<a[q].size();i++){
if(f[a[q][i]]==0){
r=a[q][i];
f[a[q][i]]=1;
dist[a[q][i]]=dist[q]+1;
}
if(fv[a[q][i]]==0){
coada[++p]=a[q][i];
fv[a[q][i]]=1;
}
}
lm++;
}
return r;
}
int main () {
ifstream fin("darb.in");
ofstream fout("darb.out");
fin>>n;
while(fin>>x>>y){
a[x].push_back(y);
a[y].push_back(x);
}
s2=bfs(1);
umple(0);
s2=bfs(s2);
fout<<dist[s2]+1;
return 0;
}