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

Задача . F. Минимальное максимальное расстояние


У вас есть дерево из \(n\) вершин, некоторые вершины которого помечены. Дерево — это связный неориентированный граф без циклов.

Обозначим за \(f_i\) максимальное расстояние от вершины с номером \(i\) до какой-то из помеченных вершин.

Ваша задача — найти минимальное значение \(f_i\) среди всех вершин.

Например, в дереве из примера раскрашены вершины с номерами \(2\), \(6\) и \(7\). Тогда массив \(f(i) = [2, 3, 2, 4, 4, 3, 3]\). \(f_i\) минимальна для вершин с номерами \(1\) и \(3\).

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

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

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

Во второй строке каждого набора входных данных записаны \(k\) целых чисел \(a_i\) (\(1 \le a_i \le n, a_{i-1} < a_i\)) — номера помеченных вершин.

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

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

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

Для каждого набора входных данных выведите одно целое число — минимальное значение \(f_i\) по всем вершинам.


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

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

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