11048. Транзит на дереві


Відправити розв'язок

Бали: 100
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам дано дерево з \(N\) вершин (дерево - зв'язний граф, без циклів). Також задана вершина номер \(K\), і \(Q\) запитів.
Кожен запит визначається двома числами \(X,Y\). Для кожного запиту визначіть довжину найкоротшого шляху з вершини \(X\) до вершини \(Y\) через вершину \(K\).

Формат вхідних даних

В першому рядку ціле число \(N\) - кількість вершин в дереві (\(3 \le N \le 10^5\))
В кожному з наступних \(N-1\) рядку міститься три цілих числа \(Ai,Bi\) номера вершин, та \(Ci\) - довжина ребра між ними (\(1 \le Ai,Bi \le N\)), (\(1 \le Ci \le 10^9\))
В наступному рядку міститься два цілих числа \(Q,K\) (\(1 \le Q \le 10^5\)), (\(1 \le K \le N\))
В кожному з наступних \(Q\) рядків міститься два цілих числа \(X,Y\) номера вершин запиту (вершини різні, і не співпадають з вершиною \(K\))

Формат вихідних даних

Для кожного запиту виведіть відповідь в окремому рядку

Приклад вхідних даних-1

5
1 2 1
1 3 1
2 4 1
3 5 1
3 1
2 4
2 3
4 5

Приклад вихідних даних-1

3
2
4

Приклад вхідних даних-2

7
1 2 1
1 3 3
1 4 5
1 5 7
1 6 9
1 7 11
3 2
1 3
4 5
6 7

Приклад вихідних даних-2

5
14
22

Приклад вхідних даних-3

10
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
6 7 1000000000
7 8 1000000000
8 9 1000000000
9 10 1000000000
1 1
9 10

Приклад вихідних даних-3

17000000000

Коментарі

Ще немає коментарів.