Найнижчий спільний предок
Обмеження: 2 сек., 256 МіБ
Задано кореневе дерево з nn вершин, пронумерованих від 11 до nn. Коренем дерева є вершина 11.
Потрібно відповісти на qq запитів — для пари вершин xx, yy потрібно знайти їхнього найнижчого спільного предка.
Вхідні дані
У першому рядку задано ціле число nn — кількість вершин дерева.
У наступних n−1n−1 рядках записано по два цілих числа uu, vv — номери вершин, з’єднані ребром.
Далі задано ціле число qq — кількість запитів.
У наступних qq рядках записано по два цілі числа xx, yy — номери вершин у запиті.
Вихідні дані
У qq рядках виведіть по одному цілому числу на кожен запит — номер найнижчого спільного предка вершин xx та yy.
Обмеження
1≤n≤2⋅1051≤n≤2⋅105,
1≤q≤2⋅1051≤q≤2⋅105.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
7 4 7 1 2 1 3 2 4 2 5 3 6 7 4 7 7 6 7 7 5 7 2 3 7 3 4 5 | 4 1 7 2 1 1 2 |
Примітки
Найнижчим спільним предком вершин 44 і 77 є вершина 44.
Найнижчим спільним предком вершин 77 і 66 є вершина 11.
Найнижчим спільним предком вершин 77 і 77 є вершина 77.
Найнижчим спільним предком вершин 55 і 77 є вершина 22.
Найнижчим спільним предком вершин 22 і 33 є вершина 11.
Найнижчим спільним предком вершин 77 і 33 є вершина 11.
Найнижчим спільним предком вершин 44 і 55 є вершина 22.