LCA через эйлеров обход
2000 мс · 256 МБ · всё или ничего
Отвечайте на запросы о наименьшем общем предке, используя эйлеров обход и разреженную таблицу, а не двоичные подъёмы.
Формат ввода
В первой строке (), во второй — родителей. Далее () и пар вершин.
Формат вывода
Для каждого запроса выведите номер наименьшего общего предка.
Примеры
ввод
5 0 0 1 1 3 3 4 3 2 0 4
вывод
1 0 0
ввод
1 1 0 0
вывод
0
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.