n вершин с номерами от 0 до n − 1, его рёбра — список first_edges, где [a, b] означает ребро между вершинами a и b. Во втором дереве m вершин с номерами от 0 до m − 1 и рёбра second_edges.
Соедините одним новым ребром какую-нибудь вершину первого дерева с какой-нибудь вершиной второго — получится одно большое дерево. Выберите концы ребра так, чтобы **диаметр** итогового дерева (число рёбер на самом длинном пути между двумя вершинами) был как можно меньше, и верните этот диаметр.first_edges=[[0, 1], [1, 2]], second_edges=[[0, 1], [0, 2], [0, 3]] → 3
Соединим середину первой цепочки (вершину 1) с центром второго дерева (вершиной 0). Самый длинный путь — например, от вершины 0 первого дерева до листа второго — имеет длину 3.
first_edges=[], second_edges=[[0, 1]] → 2
Первое дерево — одна вершина. К какой из двух вершин второго дерева её ни присоедини, получится цепочка из трёх вершин длиной 2.
first_edges=[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]], second_edges=[] → 5
Диаметр первого дерева уже 5, и новое ребро его не уменьшит. Если подвесить одиночную вершину к вершине 2 или 3, длиннее 5 путь не станет.
len(first_edges) == n − 1, len(second_edges) == m − 1first_edges=[[0, 1], [1, 2]], second_edges=[[0, 1], [0, 2], [0, 3]]
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 61 тест на сервере, включая скрытые.