Pagini recente » Cod sursa (job #2430265) | Cod sursa (job #1133721) | Cod sursa (job #429984) | Cod sursa (job #181621) | Cod sursa (job #1887646)
#include <cstdio>
#include <queue>
#include <list>
using namespace std;
int vertices, x, y;
list<int> adj[100001];
int visited[100001];
int BFS(int start){
queue<int> Q;
Q.push(start);
for(int i = 1; i <= vertices; i++) visited[i] = 0;
visited[start]++;
while(1){
int current = Q.front(); Q.pop();
for(list<int> :: iterator it = adj[current].begin(); it != adj[current].end(); it++){
if(visited[*it] == 0){
visited[*it] = visited[current] + 1;
Q.push(*it);
}
}if(Q.empty()) return current;
}
}
int main(){
freopen("darb.in", "r", stdin);
//freopen("darb.out", "w", stdout);
scanf("%d", &vertices);
for(int i = 1; i < vertices; i++){
scanf("%d %d", &x, &y);
adj[x].push_back(y);
adj[y].push_back(x);
}printf("%d", visited[BFS(BFS(1))]);
return 0;
}