Pagini recente » Cod sursa (job #2967148) | Cod sursa (job #496935) | Cod sursa (job #2563573) | Cod sursa (job #281518) | Cod sursa (job #1293687)
#include<fstream>
#include<queue>
#include<vector>
#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];
queue<int> q;
int N;
void citire(){
int x,y;
cin>>N;
for(int i=1;i<N;i++){
cin>>x>>y;
G[x].pb(y);
G[y].pb(x);
}
}
void BFS(int S){
int x;
memset(C,-1,MAXN);
q.push(S);
C[S]=0;
while(!q.empty()){
x=q.front();
q.pop();
for(int i=0;i<G[x].size();i++){
if(C[G[x][i]]==-1){
C[G[x][i]]=C[x]+1;
q.push(G[x][i]);
}//end if
}
}
}//end bfs
int maxim(){
int retine;
int max=-10;
int i;
for(i=1;i<=N;i++)
if(C[i]>max){
max=C[i];
retine=i;
}
return retine;
}
int main(){
citire();
BFS(1);
BFS(maxim());
cout<<C[maxim()]+1;
return 0;
}