Codeforces Round 665 (Div. 2) |
---|
Закончено |
Вам задан массив $$$a$$$ длины $$$2^n$$$. Вам нужно обработать $$$q$$$ запросов к нему. Каждый запрос одного из следующих $$$4$$$ типов:
Напишите программу, которая может достаточно быстро обрабатывать заданные запросы.
В первой строке заданы два целых числа $$$n$$$, $$$q$$$ ($$$0 \le n \le 18$$$; $$$1 \le q \le 10^5$$$) — длина массива $$$a$$$ и количество запросов.
Во второй строке заданы $$$2^n$$$ целых чисел $$$a_1, a_2, \ldots, a_{2^n}$$$ ($$$0 \le a_i \le 10^9$$$).
В следующих $$$q$$$ строках заданы запросы — по одному в строке. Каждый запрос одного из следующих $$$4$$$ типов:
Гарантируется, что в каждом тесте есть как минимум один запрос $$$Sum$$$.
Выведите ответы для каждого запроса $$$Sum$$$.
2 3 7 4 9 9 1 2 8 3 1 4 2 4
24
3 8 7 0 8 8 7 1 5 2 4 3 7 2 1 3 2 4 1 6 2 3 1 5 16 4 8 8 3 0
29 22 1
В первом примере, первоначально, массив $$$a$$$ равен $$$\{7,4,9,9\}$$$.
После обработки первого запроса, массив $$$a$$$ становится $$$\{7,8,9,9\}$$$.
После обработки второго запроса, массив $$$a_i$$$ становится $$$\{9,9,7,8\}$$$.
Поэтому, ответ на третий запрос равен $$$9+7+8=24$$$.
Во втором примере, первоначально, массив $$$a$$$ равен $$$\{7,0,8,8,7,1,5,2\}$$$. Далее происходит следующее:
Название |
---|