Pagini recente » Cod sursa (job #1370698) | Cod sursa (job #53703) | Cod sursa (job #1165553) | Cod sursa (job #504909) | Cod sursa (job #2760460)
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
vector<vector<int>> Graph;
int p, maxp;
void DFS(int k, int dad, int dist) {
if (dist > maxp) {
maxp = dist;
p = k;
}
for (auto v: Graph[k])
if (v != dad)
DFS(v, k, dist + 1);
}
int main() {
freopen("darb.in", "r", stdin);
freopen("darb.out", "w", stdout);
int N;
scanf("%d", &N);
Graph.resize(N);
int a, b;
for (int i = 0; i < N - 1; ++i) {
scanf("%d%d", &a, &b);
--a; --b;
Graph[a].emplace_back(b);
Graph[b].emplace_back(a);
}
DFS(0, -1, 1);
DFS(p, -1, 1);
printf("%d\n", maxp);
return 0;
}