Складніші запити на дереві
Limits: 2 sec., 256 MiB
Задано кореневе дерево з n вершин, пронумерованих від 1 до n. Коренем дерева є вершина 1. У кожній вершині v записано ціле число av.
Потрібно опрацювати q запитів двох типів.
1
u v x — збільшити значення a всім вершинам на шляху від u до v на x.2
v — знайти суму значень a у піддереві вершини v.
Input
У першому рядку задано ціле число n — кількість вершин дерева.
У другому рядку задано n цілих чисел av, що записані у вершинах.
У наступних n−1 рядках записано по два цілих числа u, v — номери вершин, з’єднаних ребром.
Далі задано ціле число q — кількість запитів.
У наступних q рядках задано запити у вищеописаному форматі.
Output
Для кожного запиту другого типу виведіть відповідь в окремому рядку.
Constraints
1≤n≤2⋅105,
1≤q≤2⋅105,
1≤av,x≤109.
Samples
Input (stdin) | Output (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 |
Notes
Спочатку a=(4,7,4,7,4).
Піддерево вершини 2 складається з вершин 2, 4, 5. Відповідь дорівнює a2+a4+a5=7+7+4=18.
Піддерево вершини 1 — це ціле дерево. Відповідь дорівнює a1+a2+a3+a4+a5=4+7+4+7+4=26.
На шляху від вершини 4 до вершини 5 лежать вершини 4, 2, 5. Після збільшення a4, a2, a5 на 2 масив a стане (4,9,4,9,6).
Піддерево вершини 2 складається з вершин 2, 4, 5. Відповідь дорівнює a2+a4+a5=9+9+6=24.
Піддерево вершини 1 — це ціле дерево. Відповідь дорівнює a1+a2+a3+a4+a5=4+9+4+9+6=32.
На шляху від вершини 4 до вершини 3 лежать вершини 4, 2, 1, 3. Після збільшення a4, a2, a1, a3 на 7 масив a стане (11,16,11,16,6).
Піддерево вершини 1 — це ціле дерево. Відповідь дорівнює a1+a2+a3+a4+a5=11+16+11+16+6=60.