Pagini recente » Cod sursa (job #383790) | Cod sursa (job #683469) | Cod sursa (job #2280340) | Cod sursa (job #269380) | Cod sursa (job #2083170)
#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;
vector <int> g[100003];
int viz[100003];
int last, lung;
void dfs(int from, int l = 1) {
viz[from] = 1;
if(l > lung) {
lung = l;
last = from;
}
for(int k = 0; k < g[from].size(); ++ k) {
int to = g[from][k];
if(viz[to] == 0) {
dfs(to, l + 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 x, y;
scanf("%d%d", &x, &y);
g[x].push_back(y);
g[y].push_back(x);
}
dfs(1);
memset(viz, 0, sizeof(viz));
dfs(last);
printf("%d\n", lung);
return 0;
}