| Codeforces Round 1117 (Div. 2) |
|---|
| Закончено |
Вам дано корневое дерево$$$^{\text{∗}}$$$ на $$$n$$$ вершинах, пронумерованных от $$$1$$$ до $$$n$$$. Вершина с номером $$$1$$$ — корень дерева. Бобр, изначально находящийся в корне, идёт по дереву до одной из бобровых плотин, расположенных в вершинах с номерами $$$a_1, \ldots, a_m$$$.
Вам нужно определить, в какую из этих $$$m$$$ вершин пошёл Бобр. Для этого вы можете установить камеры на любых рёбрах дерева. Если Бобр пройдёт по ребру, на котором установлена камера, вы это увидите. Для определённости считаем, что после всех перемещений Бобра вы получите последовательность рёбер, на которых были установлены камеры, в которой Бобр был замечен проходящим по ним соответствующей камерой.
Поскольку камеры дорогие, необходимо использовать минимальное их количество, достаточное, чтобы однозначно определить пункт назначения Бобра. От вас требуется сказать минимальное необходимое число камер $$$k$$$ и рёбра, на которые их необходимо разместить.
$$$^{\text{∗}}$$$Корневым деревом называется дерево, в котором одна из вершин специальная и называется корнем.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 2 \cdot 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
В первой строке каждого набора входных данных содержится одно целое число $$$n$$$ ($$$2 \le n \le 10^5$$$).
Вторая строка содержит $$$n-1$$$ целое число $$$p_2, \ldots, p_n$$$ — родители вершин со $$$2$$$-й по $$$n$$$-ю ($$$1 \le p_i \lt i$$$; $$$2 \le i \le n$$$).
В третьей строке написано целое число $$$m$$$ — количество вершин, содержащих бобровые плотины ($$$1 \le m \le n$$$).
В четвёртой строке — $$$m$$$ целых чисел $$$a_1, \ldots, a_m$$$ — номера этих вершин ($$$1 \le a_i \le n$$$; $$$1 \le i \le m$$$). Все $$$a_i$$$ различны.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$10^5$$$.
Для каждого набора данных выведите ровно одну строку. Первым выведите число $$$k$$$ — минимальное необходимое количество камер, а затем, в этой же строке, для каждого из $$$k$$$ рёбер, соединяющих вершины $$$u$$$ и $$$p_u$$$, на которых нужно установить камеры, выведите номер вершины $$$u$$$.
Если существует несколько решений, выведите любое из них.
4211131 132 3 131 222 361 2 2 1 135 3 1
0 2 2 3 1 3 2 2 5
В первом наборе нам не нужно ставить ни одной камеры, потому что в дереве всего одна плотина, и Бобр точно будет там.
Во втором наборе необходимо поставить камеру на каждое ребро, потому что в каждой вершине расположена плотина.
В третьем наборе плотины расположены в двух смежных вершинах, поэтому, расположив камеру на ребро между этими вершинами, мы сможем однозначно определить, в какую из них пришёл Бобр.
| Название |
|---|


