EduBrick

E. Самое дешёвое ребро

2500 мс · 256 МБ · всё или ничего

Дерево подвешено за первую вершину, у каждого ребра есть стоимость. Для каждого запроса (x,y)(x, y) найдите минимальную стоимость среди рёбер пути между вершинами.

Формат ввода

В первой строке nn (2≤n≤2⋅1052 \le n \le 2 \cdot 10^5) — количество вершин, пронумерованных от 11 до nn; корень имеет номер 11.

В следующих n−1n-1 строках по два числа xx и yy: для вершины i+1i+1 число xx — её родитель (x<i+1x < i+1), yy — стоимость ребра (∣y∣≤106|y| \le 10^6).

Далее число mm (0≤m≤2⋅1050 \le m \le 2 \cdot 10^5) и mm строк с запросами (x,y)(x, y), где x≠yx \ne y.

Формат вывода

Для каждого запроса выведите минимальную стоимость ребра на пути.

Примеры

ввод
5
1 2
1 3
2 5
3 2
2
2 3
4 5
вывод
2
2
ввод
2
1 -1000000
1
1 2
вывод
-1000000
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.