Pagini recente » Cod sursa (job #1322714) | Cod sursa (job #1708184) | Cod sursa (job #1452667) | Cod sursa (job #1449974) | Cod sursa (job #2911728)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
#define int long long
const int NMAX = 1e5;
int n, root, ans, max_dist, best_node;
bool visited[NMAX + 1];
vector<int> adj[NMAX + 1];
void dfs(int node, int dist = 0) {
visited[node] = 1;
if(dist > max_dist) {
max_dist = dist;
best_node = node;
}
for(auto it: adj[node]) {
if(!visited[it]) {
dfs(it, dist + 1);
}
}
}
signed main() {
fin >> n;
for(int i = 1; i < n; i++) {
int a, b;
fin >> a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}
max_dist = 0;
root = 1;
for(int i = 1; i <= n; i++) {
visited[i] = 0;
}
dfs(root);
max_dist = 0;
root = best_node;
for(int i = 1; i <= n; i++) {
visited[i] = 0;
}
dfs(root);
fout << max_dist << '\n';
return 0;
}