Cod sursa(job #3301186)

Utilizator MihaiZ777MihaiZ MihaiZ777 Data 22 iunie 2025 19:03:29
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#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;
}