Pagini recente » Cod sursa (job #2711920) | Cod sursa (job #1462607) | Cod sursa (job #451716) | Rezultatele filtrării | Cod sursa (job #3301186)
#include <algorithm>
#include <cmath>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <vector>
#include <fstream>
#include <cstring>
using namespace std;
#define fast_io ios::sync_with_stdio(0); cin.tie(0); do{}while(0)
typedef long long ll;
ifstream fin("darb.in");
ofstream fout("darb.out");
const int MAXN = 1e5 + 5;
int n;
vector<int> graph[MAXN];
bool visited[MAXN];
int furthest;
int bestDistance;
void ReadData() {
fin >> n;
int a, b;
for (int i = 0; i < n - 1; i++) {
fin >> a >> b;
graph[a].push_back(b);
graph[b].push_back(a);
}
}
void DFS(int node, int distance) {
if (distance > bestDistance) {
furthest = node;
bestDistance = distance;
}
visited[node] = true;
for (int next : graph[node]) {
if (visited[next]) {
continue;
}
DFS(next, distance + 1);
}
}
void Solve() {
DFS(1, 1);
memset(visited, 0, sizeof(visited));
DFS(furthest, 1);
fout << bestDistance << '\n';
}
int main() {
ReadData();
Solve();
return 0;
}