Найти диаметр дерева
Вам дано дерево с
v
вершинами, и ваша задача — найти его диаметр. Диаметр определяется как длина пути между двумя наиболее удалёнными вершинами. Ввод
Первая строка входных данных содержит одно целое число
v
(1 ≤ v ≤ 100 000).В следующих
v-1
строках записаны пары целых чисел v1
, v2
(1 ≤ v1, v2 ≤ v), указывающие, что вершина v1
соединена с вершиной v2
и наоборот. Вывод
Программа должна вывести диаметр заданного дерева.
Примеры
Ввод | Вывод |
3
1 2
1 3 | 2 |
5
1 2
1 3
3 4
3 5 | 3 |
Подсказка 1
Можно несколько раз выполнить DFS (поиск в глубину) из разных вершин.
Подсказка 2
Сначала можно запустить DFS из вершины 1 и найти самую удалённую вершину (поскольку это дерево и в нём нет циклов, мы можем сделать это без BFS).
Затем запустите DFS из найденной самой удалённой вершины и найдите вершину, которая от неё дальше всего.
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB