Чемпионат по устному счету

Сложность: 21%

Председатель жюри чемпионата по устному счету !A !B !C придумал новое задание для участников чемпионата. Исходно на доске выписывается nn целых чисел: a1,a2,,ana_1, a_2, \ldots, a_n. После этого участник должен выполнять команды двух типов:

  1. Стереть ii-е число с доски и записать вместо него число xx. То есть, если на доске были записаны числа a1,a2,,ana_1, a_2, \ldots, a_n, то после выполнения команды числа будут равны: a1,,ai1,x,ai+1,,ana_1, \ldots, a_{i - 1}, x, a_{i + 1}, \ldots, a_n.

  2. Циклически сдвинуть последовательность чисел на kk вправо. То есть, если на доске были записаны числа a1,a2,,ana_1, a_2, \ldots, a_n, то после выполнения команды числа будут равны: ank+1,ank+2,,an,a1,a2,,anka_{n - k + 1}, a_{n - k + 2}, \ldots, a_n, a_1, a_2, \ldots, a_{n - k}.

После выполнения каждой команды участник должен вычислить сумму всех чисел, записанных на доске, и сообщить ее жюри. Чтобы подготовиться проверять ответы участников, членам жюри необходимо самим вычислить требуемые суммы.

Входные данные

В первой строке записано целое число nn – количество чисел, изначально записанных на доске (2n1052 \leq n \leq 10^5).

Во второй строке через пробел записаны nn целых чисел: a1,a2,,ana_1, a_2, \ldots, a_n – числа, изначально выписанные на доске (109ai109-10^9 \leq a_i \leq 10^9).

В третьей строке записано целое число qq – количество команд, которые необходимо выполнить (1q1051 \leq q \leq 10^5).

В каждой из следующих qq строк записана очередная команда в следующем формате:

  • 1 i x1~i~x – это означает, что участник должен заменить ii-е число последовательности на число xx (1in1 \leq i \leq n; 109x109-10^9 \leq x \leq 10^9).

  • 2 k2~k – это означает, что участник должен циклически сдвинуть последовательность чисел на kk вправо (1k<n1 \leq k < n).

Выходные данные

В качестве ответа выведите qq строк, в каждой из которых записано одно целое число.

В ii-й строке должна быть записана сумма чисел на доске после выполнения первых ii команд.

Обратите внимание, что ответ может быть достаточно большим и для его хранения потребуется 64-битный тип данных, int64 в паскале, long long в C++, long в Java.

Подзадачи

баллынеобх. подзадачиограничения
0

0

-

Тесты из условия

1

22

-

2n10002 \le n \le 1 000, есть только команды первого типа

2

17

-

2n10002 \le n \le 1 000, во всех командах второго типа k=1k = 1

3

23

1, 2

2n10002 \le n \le 1 000

4

38

1, 2, 3

Нет дополнительных ограничений

STDINSTDOUT
6
4 1 2 1 5 3
5
2 3
1 3 10
1 4 4
2 1
1 1 -10
16
23
23
23
11
3
1000000000 1000000000 1000000000
3
1 2 999999999
2 2
1 2 999999999
2999999999
2999999999
2999999998

Примечание

Рассмотрим пример из условия. Изначально последовательность записанных на доске чисел равна: 4, 1, 2, 1, 5, 34,~1,~2,~1,~5,~3.

После первой команды последовательность циклически сдвигается на 33 элемента вправо. Новая последовательность: 1, 5, 3, 4, 1, 21,~5,~3,~4,~1,~2. Сумма чисел равна: 1+5+3+4+1+2=161 + 5 + 3 + 4 + 1 + 2 = 16.

После второй команды необходимо заменить третий элемент последовательности на число 1010. Новая последовательность: 1, 5, 10, 4, 1, 21,~5,~10,~4,~1,~2. Сумма чисел равна: 1+5+10+4+1+2=231 + 5 + 10 + 4 + 1 + 2 = 23.

После третьей команды заменить четвертый элемент на число 44. Так как четвертый элемент уже равен 44, последовательность не изменяется. Сумма чисел также равна 2323.

После четвертой команды последовательность циклически сдвигается на 11: 2, 1, 5, 10, 4, 12,~1,~5,~10,~4,~1. Сумма чисел не изменилась.

Наконец, после пятой команды последовательность становится равна: 10, 1, 5, 10, 4, 1-10,~1,~5,~10,~4,~1. Сумма чисел в итоговой последовательности равна 10+1+5+10+4+1=11-10 + 1 + 5 + 10 + 4 + 1 = 11.