Складніші запити на дереві
Обмеження: 2 сек., 256 МіБ
Задано кореневе дерево з nn вершин, пронумерованих від 11 до nn. Коренем дерева є вершина 11. У кожній вершині vv записано ціле число avav.
Потрібно опрацювати qq запитів двох типів.
1
u v x u v x — збільшити значення aa всім вершинам на шляху від uu до vv на xx.2
v v — знайти суму значень aa у піддереві вершини vv.
Вхідні дані
У першому рядку задано ціле число nn — кількість вершин дерева.
У другому рядку задано nn цілих чисел avav, що записані у вершинах.
У наступних n−1n−1 рядках записано по два цілих числа uu, vv — номери вершин, з’єднаних ребром.
Далі задано ціле число qq — кількість запитів.
У наступних qq рядках задано запити у вищеописаному форматі.
Вихідні дані
Для кожного запиту другого типу виведіть відповідь в окремому рядку.
Обмеження
1≤n≤2⋅1051≤n≤2⋅105,
1≤q≤2⋅1051≤q≤2⋅105,
1≤av,x≤1091≤av,x≤109.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
5 4 7 4 7 4 1 2 1 3 2 4 2 5 7 2 2 2 1 1 4 5 2 2 2 2 1 1 4 3 7 2 1 | 18 26 24 32 60 |
Примітки
Спочатку a=(4,7,4,7,4)a=(4,7,4,7,4).
Піддерево вершини 22 складається з вершин 22, 44, 55. Відповідь дорівнює a2+a4+a5=7+7+4=18a2+a4+a5=7+7+4=18.
Піддерево вершини 11 — це ціле дерево. Відповідь дорівнює a1+a2+a3+a4+a5=4+7+4+7+4=26a1+a2+a3+a4+a5=4+7+4+7+4=26.
На шляху від вершини 44 до вершини 55 лежать вершини 44, 22, 55. Після збільшення a4a4, a2a2, a5a5 на 22 масив aa стане (4,9,4,9,6)(4,9,4,9,6).
Піддерево вершини 22 складається з вершин 22, 44, 55. Відповідь дорівнює a2+a4+a5=9+9+6=24a2+a4+a5=9+9+6=24.
Піддерево вершини 11 — це ціле дерево. Відповідь дорівнює a1+a2+a3+a4+a5=4+9+4+9+6=32a1+a2+a3+a4+a5=4+9+4+9+6=32.
На шляху від вершини 44 до вершини 33 лежать вершини 44, 22, 11, 33. Після збільшення a4a4, a2a2, a1a1, a3a3 на 77 масив aa стане (11,16,11,16,6)(11,16,11,16,6).
Піддерево вершини 11 — це ціле дерево. Відповідь дорівнює a1+a2+a3+a4+a5=11+16+11+16+6=60a1+a2+a3+a4+a5=11+16+11+16+6=60.