Pagini recente » Cod sursa (job #3262777) | Cod sursa (job #1271039) | Cod sursa (job #951474) | Cod sursa (job #1188073) | Cod sursa (job #2708889)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("darb.in");
ofstream cout("darb.out");
const int NMAX = 100005;
vector<int>lista[NMAX];
queue<int>q;
int dist[NMAX];
int n;
void bfs(int nod){
for(int i=1;i<=n;i++)
dist[i] = 0;
q.push(nod);
dist[nod] = 1;
while(!q.empty()){
int elem;
elem = q.front();
q.pop();
for(auto y : lista[elem])
if(dist[y] == 0){
dist[y] = dist[elem] + 1;
q.push(y);
}
}
}
int main(){
cin >> n;
for(int i=1;i<=n;i++){
int x, y;
cin >> x >> y;
lista[x].push_back(y);
lista[y].push_back(x);
}
bfs(1);
int maxi = -1;
int nodmax;
for(int i=1;i<=n;i++){
if(dist[i] > maxi){
maxi = dist[i];
nodmax = i;
}
}
bfs(nodmax);
maxi = -1;
for(int i=1;i<=n;i++)
maxi = max(maxi, dist[i]);
cout << maxi + 1;
return 0;
}