EduBrick

K. Прибавить всем и поксорить всем

3000 мс · 512 МБ · всё или ничего

Дан массив из nn чисел. Обрабатывайте запросы четырёх видов:

  • 1 v — прибавить vv к каждому элементу массива (vv может быть отрицательным);
  • 2 c — применить к каждому элементу побитовое исключающее «или» с числом cc;
  • 3 i b — присвоить ai=ba_i = b;
  • 4 i — вывести aia_i.

Гарантируется, что после каждого запроса все элементы лежат в промежутке [0,220)[0, 2^{20}).

Формат ввода

В первой строке — числа nn и qq (1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5). Во второй — nn чисел (0≤ai<2200 \le a_i < 2^{20}). Далее qq запросов; 0≤c,b<2200 \le c, b < 2^{20}, 1≤i≤n1 \le i \le n, сумма ∣v∣|v| по всем запросам первого вида не превосходит 10610^6.

Формат вывода

На каждый запрос четвёртого вида выведите значение элемента.

Примеры

ввод
4 5
1 2 3 4
1 1
2 1
4 1
3 1 2
4 1
вывод
3
2
ввод
1 2
0
4 1
1 1
вывод
0
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.