В уже известном вам городе Банкополисе наконец-то появился новый банк! К сожалению, еще не до конца готова его система безопастности... Тем временем в Банкополисе появился хакер Леха, который решил протестировать систему на прочность!
В банке хранятся n ячеек клиентов. Последовательность из n чисел a1, a2, ..., an описывает количество денег в ячейке каждого клиента. Леха желает обращаться к базе данных банка, узнавая суммарное количество денег в ячейках на промежутке последовательсти и изменяя значения в ячейках на промежутке. Через лазейку в системе хакеру Лехе доступно два вида запросов к базе данных банка:
Так как Леха — белый хакер, то он не хочет исследовать уязвимость на реальной базе данных. Вам необходимо реализовать для Лехи похожую базу данных, способную отвечать на его запросы!
В первой строке находится два целых числа n и q (1 ≤ n ≤ 105, 1 ≤ q ≤ 105), означающих количество ячеек в банке и суммарное количество запросов Лехи соответственно.
В следующей строке записано n целых чисел a1, a2, ..., an (1 ≤ ai < 109) — числа, означающие изначальное количество денег в ячейках. Эти числа не содержал лидирующих нулей.
Каждая из последующих q строк имеет один из форматов:
На каждый запрос о сумме чисел на промежутке последовательности в отдельной строке выведите одно целое число — искомую сумму.
5 5
38 43 4 12 70
1 1 3 4 8
2 2 4
1 4 5 0 8
1 2 5 8 7
2 1 5
103
207
5 5
25 36 39 40 899
1 1 3 2 7
2 1 2
1 3 5 9 1
1 4 4 0 9
2 1 5
111
1002
Рассмотрим первый пример.
Первоначально последовательность имеет вид [38, 43, 4, 12, 70].
После первого изменения все цифры, равные 4, изменяются на 8 у элементов последовательности, имеющих индексы в промежутке [1; 3]. Таким образом, новая последовательность — [38, 83, 8, 12, 70].
Ответом на первый запрос суммы является сумма на промежутке [2; 4], равная 83 + 8 + 12 = 103, поэтому ответ на первый запрос суммы равен 103.
После второго изменения последовательность приобретает вид [38, 83, 8, 12, 78], а после третьего — [38, 73, 7, 12, 77].
Ответом на второй запрос суммы является 38 + 73 + 7 + 12 + 77 = 207.
Название |
---|