Pagini recente » Cod sursa (job #2505857) | Cod sursa (job #1313393) | Cod sursa (job #163177) | Cod sursa (job #3211605) | Cod sursa (job #2375328)
#include <stdio.h>
#include <vector>
const int MAX_N = 100000;
std::vector<int> G[1 + MAX_N];
bool visited[1 + MAX_N];
int node, max;
void dfs(int u, int dist) {
visited[u] = true;
if (dist > max) {
max = dist;
node = u;
}
for (int v : G[u])
if (!visited[v])
dfs(v, dist + 1);
}
int main() {
freopen("darb.in", "r", stdin);
freopen("darb.out", "w", stdout);
int n;
scanf("%d", &n);
for (int i = 1; i < n; i++) {
int u, v;
scanf("%d%d", &u, &v);
G[u].push_back(v);
G[v].push_back(u);
}
dfs(1, 1);
for (int i = 1; i <= n; i++)
visited[i] = false;
dfs(node, 1);
printf("%d\n", max);
fclose(stdin);
fclose(stdout);
return 0;
}