EduBrick

L. MEX на пути

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

Дано дерево, на каждом ребре которого написано неотрицательное целое число. Для каждого запроса (u,v)(u, v) нужно назвать наименьшее неотрицательное целое, которого нет среди чисел на рёбрах пути из uu в vv.

Формат ввода

В первой строке nn (2≤n≤1052 \le n \le 10^5) — число вершин, пронумерованных от 00 до n−1n-1; корень — вершина 00. Во второй строке n−1n-1 чисел: ii-е из них — родитель вершины ii (родитель имеет меньший номер). В третьей строке n−1n-1 чисел wiw_i (0≤wi≤1090 \le w_i \le 10^9) — число на ребре между вершиной ii и её родителем.

В четвёртой строке qq (1≤q≤1051 \le q \le 10^5). В следующих qq строках по два числа uu и vv.

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

Для каждого запроса выведите наименьшее неотрицательное число, не встречающееся на рёбрах пути.

Примеры

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