Вам задан массив целых чисел \(a\) размера \(n\) и перестановка \(p\) размера \(n\). К вам приходят \(q\) запросов трех типов:
- Даны числа \(l\) и \(r\). Требуется посчитать сумму чисел массива \(a\) на отрезке c \(l\) по \(r\): \(\sum\limits_{i=l}^{r} a_i\).
- Даны числа \(v\) и \(x\). Давайте представим \(p\) в виде ориентированного графа, у которого \(n\) вершин и \(n\) рёбер \(i \to p_i\). Пусть \(C\) — это множество вершин, которые достижимы из \(v\) в графе. Требуется прибавить число \(x\) ко всем \(a_u\) таким, что \(u\) лежит в \(C\).
- Даны индексы \(i\) и \(j\). Вам нужно поменять местами значения \(p_i\) и \(p_j\).
Граф, получаемый из перестановки \([2, 3, 1, 5, 4]\). От вас требуется вывести ответы на все запросы \(1\) вида.
Выходные данные
Для каждого запроса первого типа выведите единственное целое число — ответ на запрос.
Примечание
Рассмотрим первый тест.
Граф, получаемый из изначальной перестановки. В первом тесте \(6\) запросов.
- Сумма на отрезке с \(1\) по \(5\) это \(a_1 + a_2 + a_3 + a_4 + a_5 = 6 + 9 + (-5) + 3 + 0 = 13\).
- Из вершины \(1\) достижимы вершины \(\{1, 2, 3\}\). Получается, что после этого запроса массив \(a\) будет выглядеть так: \([7, 10, -4, 3, 0]\).
- Сумма на отрезке с \(1\) по \(5\) это \(a_1 + a_2 + a_3 + a_4 + a_5 = 6 + 9 + (-5) + 3 + 0 = 16\).
- После запроса \(p = [4, 3, 1, 5, 2]\).
Граф, получаемый из перестановки после четвёртого запроса. - Из вершины \(2\) достижимы вершины \(\{1, 2, 3, 4, 5\}\). Получается, что после этого запроса массив \(a\) будет выглядеть так: \([6, 9, -5, 2, -1]\).
- Сумма на отрезке с \(1\) по \(5\) это \(a_1 + a_2 + a_3 + a_4 + a_5 = 6 + 9 + (-5) + 2 + (-1) = 11\).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 6 9 -5 3 0 2 3 1 5 4 6 1 1 5 2 1 1 1 1 5 3 1 5 2 1 -1 1 1 5
|
13
16
11
|
|
2
|
8 -15 52 -4 3 5 9 0 5 2 4 6 8 1 3 5 7 10 2 2 2 2 5 -1 1 1 8 1 1 5 1 5 8 3 1 6 2 1 50 1 1 8 2 6 -20 1 1 8
|
61
45
22
461
301
|
|
3
|
1 1 1 1 1 1 1
|
1
|