Pagini recente » Cod sursa (job #3332849) | Cod sursa (job #2761515) | Micul String | Cod sursa (job #3332013) | Cod sursa (job #3334526)
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream cin("darb.in");
ofstream cout("darb.out");
vector<vector<int>> tree;
int n, max_level = -1, max_level_node = 0;
bitset<(int)(1e5 + 5)> viz;
void dfs(int node, int level) {
viz[node] = 1;
if (level > max_level) {
max_level = level;
max_level_node = node;
}
for (int nei : tree[node]) {
if (!viz[nei]) {
dfs(nei, level + 1);
}
}
}
int main() {
cin >> n;
tree.assign(n + 2, vector<int>());
for (int i = 1 ; i <= n - 1 ; ++i) {
int src, dest; cin >> src >> dest;
tree[src].push_back(dest);
tree[dest].push_back(src);
}
dfs(1, 1);
int s = max_level_node;
max_level_node = 0;
max_level = -1;
viz.reset();
dfs(s, 1);
cout << max_level;
return 0;
}