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

Задача . F. Тимофей и черно-белое дерево


Тимофей приехал в известную летнюю школу и нашел там дерево на \(n\) вершинах. Дерево — это связный неориентированный граф без циклов.

Каждая вершина этого дерева, кроме \(c_0\), покрашена в белый цвет. Вершина \(c_0\) покрашена в черный цвет.

Тимофей хочет покрасить все вершины этого дерева в черный цвет. Для этого он выполняет \(n - 1\) операцию. Во время \(i\)-й операции он выбирает белую вершину \(c_i\) и красит ее в черный цвет.

Назовем позитивностью дерева минимальное расстояние между всеми парами различных черных вершин в нем. Расстоянием между вершинами \(v\) и \(u\) называется количество ребер на пути от \(v\) до \(u\).

После каждой очередной покраски Тимофей хочет знать позитивность текущего дерева.

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

В первой строке записано число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных.

В первой строке каждого набора входных данных записаны числа \(n, c_0\) (\(2 \le n \le 2 \cdot 10^5\), \(1 \le c_0 \le n\)) — количество вершин в дереве и номер начальной черной вершины.

Во второй строке каждого набора входных данных записано \(n - 1\) различных чисел \(c_1, c_2, \dots, c_{n-1}\) (\(1 \le c_i \le n\), \(c_i \ne c_0\)), где \(c_i\) это вершина, покрашенная в черный цвет во время \(i\)-й операции.

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

Гарантируется, что сумма \(n\) по всем наборам входных данных не превосходит \(2 \cdot 10^5\).

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

Для каждого набора входных данных выведите в отдельной строке \(n - 1\) число.

Число с номером \(i\) должно быть равно позитивности дерева, полученного первыми \(i\) покрасками.

Примечание

В первом наборе входных данных, после второй покраски, дерево выглядит так:

Расстояние между вершинами \(1\) и \(6\) равно \(3\), расстояние между вершинами \(4\) и \(6\) равно \(3\), расстояние между вершинами \(1\) и \(4\) равно \(2\). Позитивность такого дерева равна минимуму из этих расстояний, то есть \(2\).

В третьем наборе входных данных, после четвертой покраски, дерево выглядит так:

Позитивность такого дерева равна \(2\).


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

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

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