Pagini recente » Cod sursa (job #491093) | Cod sursa (job #2858242) | Cod sursa (job #3143730) | Cod sursa (job #2820492) | Cod sursa (job #2795399)
#include <cassert>
#include <stdio.h>
#include <vector>
#include <queue>
#define MAXN 100000
int n;
std::vector<int> muchii[MAXN];
int v = 0;
bool viz[2][MAXN];
int depth[MAXN];
int
bfs (int x) {
std::queue<int> q;
depth[x] = 1;
viz[v][x] = 1;
q.emplace(x);
while(!q.empty()) {
x = q.front();
q.pop();
for (int i = 0; i != muchii[x].size(); ++ i) {
int now = muchii[x][i];
if (!viz[v][now]) {
viz[v][now] = true;
depth[now] = depth[x] + 1;
q.emplace(now);
}
}
}
++ v;
return x;
}
int main () {
int i;
assert(freopen("darb.in", "r", stdin));
assert(freopen("darb.out", "w", stdout));
assert(scanf("%d", &n) == 1);
for (i = 0; i != n - 1; ++ i) {
int de, la;
assert(scanf("%d%d", &de, &la) == 2);
-- de, -- la;
muchii[de].emplace_back(la);
muchii[la].emplace_back(de);
}
printf("%d", depth[bfs(bfs(0))]);
}