Найнижчий спільний предок
Limits: 2 sec., 256 MiB
Задано кореневе дерево з nn вершин, пронумерованих від 11 до nn. Коренем дерева є вершина 11.
Потрібно відповісти на qq запитів — для пари вершин xx, yy потрібно знайти їхнього найнижчого спільного предка.
Input
У першому рядку задано ціле число nn — кількість вершин дерева.
У наступних n−1n−1 рядках записано по два цілих числа uu, vv — номери вершин, з’єднані ребром.
Далі задано ціле число qq — кількість запитів.
У наступних qq рядках записано по два цілі числа xx, yy — номери вершин у запиті.
Output
У qq рядках виведіть по одному цілому числу на кожен запит — номер найнижчого спільного предка вершин xx та yy.
Constraints
1≤n≤2⋅1051≤n≤2⋅105,
1≤q≤2⋅1051≤q≤2⋅105.
Samples
Input (stdin) | Output (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 |
Notes
Найнижчим спільним предком вершин 44 і 77 є вершина 44.
Найнижчим спільним предком вершин 77 і 66 є вершина 11.
Найнижчим спільним предком вершин 77 і 77 є вершина 77.
Найнижчим спільним предком вершин 55 і 77 є вершина 22.
Найнижчим спільним предком вершин 22 і 33 є вершина 11.
Найнижчим спільним предком вершин 77 і 33 є вершина 11.
Найнижчим спільним предком вершин 44 і 55 є вершина 22.