Pagini recente » Cod sursa (job #2062614) | Cod sursa (job #1454021) | Cod sursa (job #1654963) | Cod sursa (job #1160116) | Cod sursa (job #1700351)
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;
ifstream cin("darb.in");
ofstream cout("darb.out");
const int MaxN = 100005;
vector <int> G[MaxN];
bool used[MaxN];
int n, farthest, MaxLevel;
void Dfs(int node, int level = 1) {
used[node] = true;
if (level > MaxLevel) {
MaxLevel = level;
farthest = node;
}
for (auto nxt: G[node]) {
if (used[nxt]) {
continue;
}
Dfs(nxt, level + 1);
}
}
int main() {
cin >> n;
for (int i = 1; i <= n - 1; ++i) {
int a, b;
cin >> a >> b;
G[a].push_back(b);
G[b].push_back(a);
}
Dfs(1);
MaxLevel = 0;
memset(used, 0, sizeof used);
Dfs(farthest);
cout << MaxLevel << '\n';
return 0;
}