10685: Сума в піддереві


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

Бали: 100 (partial)
Time limit: 2.0s
Memory limit: 256M

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

Задане кореневе дерево. Вершина номер \(R\) є коренем дерева.

Кожна вершина в дереві має певну вагу.

Необхідно обробити \(Q\) запитів наступного виду:

\(1 V X\) - додати до ваги вершини \(V\) значення \(X\)
\(2 V\) - знайти суму ваг всіх вершин піддерева вершини \(V\)

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

В першому рядку три цілі числа \(N,Q,R\), довжина рядків (\(1 \le N,Q,Q \le 10^6\)).
В наступному рядку \(N\) цілих чисел \(Wi\) - вага кожної вершини (\(-10^6 \le Wi \le 10^6\)).
В наступних \(N-1\) рядках перераховані ребра дерева (номера двох вершин).
В кожному з наступних \(Q\) рядків міститься опис запиту (число \(X\) в запитах виду \(1 V X\) буде лежати в межах \(-10^6 \le X \le 10^6\))

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

Для кожного запиту виду \(2 V\) виведіть відповідь в окремому рядку.

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

10 14 9
12 -6 -4 -3 12 8 9 6 6 2
8 2
2 10
8 6
2 7
7 1
6 3
10 9
2 4
10 5
1 4 -1
2 2
1 7 -1
2 10
1 10 5
2 1
1 7 -5
2 5
1 1 8
2 7
1 8 8
2 2
1 5 5
2 6

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

21
34
12
12
23
31
4

Коментарі

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