Задача №114681. Найти путь

Дано дерево (связный неориентированный граф без циклов), состоящее из \(n\) вершин. Для пары вершин \(u\) и \(v\) обозначим за \(f(u, v)\) последовательность номеров вершин на единственном пути из вершины \(u\) в вершину \(v\) в порядке от \(u\) к \(v\). Например, для любого ребра \((u, v)\) дерева \(f(u, v) = [u, v]\), а для любой вершины \(u\) дерева \(f(u, u) = [u]\).

Для данного дерева выписали все \(n^2\) последовательностей \(f(i, j)\) для всевозможных пар \(1 \leq i, j \leq n\) и упорядочили эти последовательности лексикографически.

Даны \(q\) запросов, каждый из которых состоит из единственного числа \(k\). Для каждого запроса определите пару вершин \(u\) и \(v\), путь между которыми оказался в полученном списке последовательностей на \(k\)-м месте. Последовательности в списке нумеруются, начиная с 1.

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

В первой строке содержатся два целых числа \(n\) и \(q\) (\(1 \leq n \leq 100\,000, 1 \leq q \leq 300\,000\)) — количество вершин в дереве и количество запросов, соответственно.

В следующих \(n - 1\) строках содержатся пары целых чисел \(u_i, v_i\) (\(1 \leq u_i, v_i \leq n\)), описывающие ребра между вершинами \(u_i\) и \(v_i\). Гарантируется, что заданный граф является деревом.

В следующих \(q\) строках содержатся описания запросов. Запрос задаётся единственным числом \(k\) (\(1 \leq k \leq n^2\)) — номером пути в списке, чьи конечные вершины требуется найти.

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

Для каждого запроса выведите ответ на него в отдельной строке: если на позиции \(k\) в списке последовательностей находится \(f(u, v)\), выведите \(u\) и \(v\).

Примечание

В примере существуют такие последовательности:

\(\)[1], [1, 2], [1, 2, 3],\(\) \(\)[2], [2, 1], [2, 3],\(\) \(\)[3],[3, 2], [3, 2, 1]\(\)

Последовательность \(a\) длины \(n\) лексикографически меньше последовательности \(b\) длины \(m\) тогда и только тогда, когда существует \(i \leq \min(n, m)\) такое, что \(a_j = b_j\) для всех \(j \lt i\) и \(a_i \lt b_i\) или когда \(n \lt m\) и \(a_i = b_i\) для всех \(i \leq n\).

Обратите внимание, что число \(k\) может превышать размер \(32\)-битного типа данных.

Система оценки

Тесты к этой задаче состоят из шести групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов необходимых групп.

Обозначим за \(d_v\) степень вершины \(v\) — количество вершин, с которыми \(v\) соединена ребром.

Дополнительные ограничения
Группа Баллы \(n\) \(q\) \(k\) Необх. группы Комментарий
0 0 Тесты из условия.
1 11 \(n \le 100\) \(q \le 10\,000\) 0
2 15 \(n \le 1000\) \(q \le 10\,000\) 0 – 1
3 12 \(d_v = 1\) ровно у двух вершин.
4 12 \(d_v = 1\) ровно у \(n - 1\) вершин.
5 25 \(k \le n\)
6 25 0 – 5
Примеры
Входные данные
3 4
1 2
2 3
1
5
2
9
Выходные данные
1 1
2 1
1 2
3 1
Сдать: для сдачи задач необходимо войти в систему