Pagini recente » Cod sursa (job #402885) | Cod sursa (job #201294) | Cod sursa (job #2002325) | Cod sursa (job #2107506) | Cod sursa (job #1293948)
#include<fstream>
#include<queue>
#include<vector>
#include<cstring>
#define MAXN 100005
#define pb push_back
using namespace std;
ifstream cin("darb.in");
ofstream cout("darb.out");
vector<int> G[MAXN];
int C[MAXN],viz[MAXN];
queue<int> q;
int N,last,d;
void citire(){
int x,y;
cin>>N;
for(int i=0;i<N-1;i++){
cin>>x>>y;
G[x].pb(y);
G[y].pb(x);
}
}
void BFS(int S){
int x,i;
memset(C,0,MAXN);
memset(viz,0,MAXN);
q.push(S);
C[S]=1;
viz[S]=1;
while(!q.empty()){
x=q.front();
for(i=0;i<G[x].size();i++){
if(!viz[G[x][i]]){
C[G[x][i]]=C[x]+1;
viz[G[x][i]]=1;
q.push(G[x][i]);
last=G[x][i];
d=C[G[x][i]];
}//end if
}
q.pop();
}
}//end bfs
int main(){
citire();
BFS(1);
BFS(last);
cout<<d;
return 0;
}