РСОП XXVIII 2016
6
H.
Tree
28
Условие
Задача H. Дърво
---
Дадено е претеглено дърво с N, 2 ≤ N ≤ 150 001 върха, номерирани с числата от 0 до N - 1. Корена на дървото е връх с номер 0. Търси се разстоянието между двойки върхове.
Вход
---
За всеки тест на първия ред е зададен броя на върховете N. Следват N - 1 реда с по две числа. i-тия ред съдържа предшественика на връх с номер i и разстоянието между тях d, 0 ≤ d ≤ 100. Следва ред с броя на заявките Q, 0 ≤ Q ≤ N. На следващите Q реда ще има по две числа – номерата на върховете, разстоянието между които ни интересува. Края на входа е маркиран с 0.
Изход
---
За всеки тест програмата трябва да изведе Q числа, всяко на отделен ред на стандартния изход – разстоянието между съответните върхове.
Примерен вход
---
16
0 1
1 2
1 3
2 2
2 4
3 1
6 4
5 2
4 1
4 5
9 4
9 2
12 3
7 2
7 1
7
13 15
8 2
0 14
9 10
14 8
10 11
13 8
0
Примерен изход
---
19
6
11
6
18
10
14