Олимпиадный тренинг

Задача . E. Две шахматные фигуры


У Cirno_9baka есть дерево с \(n\) вершинами. Он готов поделиться им с вами, что означает, что вы можете на нем оперировать.

Изначально в вершине \(1\) дерева стоят две шахматные фигуры. За один шаг вы можете выбрать любую фигуру и переместить ее в соседнюю вершину. Вам также дано целое число \(d\). Вам нужно выполнить следующее условие: расстояние между двумя фигурами всегда должно не превышать \(d\).

У каждой из этих двух фигур есть последовательность вершин, которые они должны пройти в любом порядке, и, в конце концов, они должны вернуться в корень. Как любознательный мальчик, он хочет узнать минимальное количество шагов, которое для этого необходимо сделать.

Входные данные

Первая строка содержит два целых числа \(n\) и \(d\) (\(2 \le d \le n \le 2\cdot 10^5\)).

В \(i\)-й из следующих \(n - 1\) строк содержится два целых числа \(u_i, v_i\) \((1 \le u_i, v_i \le n)\), обозначающих ребро между вершинами \(u_i, v_i\) дерева.

Гарантируется, что эти ребра образуют дерево.

Следующая строка содержит целое число \(m_1\) (\(1 \le m_1 \le n\)) и \(m_1\) целых чисел \(a_1, a_2, \ldots, a_{m_1}\) (\(1 \le a_i \le n\), все \(a_i\) попарно различны)  — последовательность вершин, которые должна пройти первая фигура.

Вторая строка содержит целое число \(m_2\) (\(1 \le m_2 \le n\)) и \(m_2\) целых чисел \(b_1, b_2, \ldots, b_{m_2}\) (\(1 \le b_i \le n\), все \(b_i\) попарно различны)  — последовательность вершин, которые должна пройти вторая фигура.

Выходные данные

Выведите одно целое число  — минимальное количество шагов, которые необходимо сделать.

Примечание

В первом примере, вот одна возможная последовательность шагов длиной \(6\).

  • Вторая фигура перемещается по маршруту \(1 \to 2 \to 4 \to 2 \to 1\).

  • Затем, первая фигура перемещается по маршруту \(1 \to 3 \to 1\).

Во втором примере, вот одна возможная последовательность шагов длиной \(8\):

  • Первая фигура перемещается по маршруту \(1 \to 2 \to 3\).

  • Затем, вторая фигура перемещается по маршруту \(1 \to 2\).

  • Затем, первая фигура перемещается по маршруту \(3 \to 4 \to 3 \to 2 \to 1\).

  • Затем, вторая фигура перемещается по маршруту \(2 \to 1\).


Примеры
Входные данныеВыходные данные
1 4 2
1 2
1 3
2 4
1 3
1 4
6
2 4 2
1 2
2 3
3 4
4 1 2 3 4
1 1
8

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя