아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Последовательность

시간 제한2초메모리 제한1024 MB

요약
k비트 수 배열에서 한 점을 갱신하고, 구간에 접두 방향으로 NOT과 AND를 교대로 적용한 값을 구한다.
난이도

보통10점 중 6점

유형
세그먼트 트리, 비트 연산, 분할 정복, 배열
정답자
아직 제출이 없습니다

문제

Участвуя в раскопках гробницы Тутонхамона, фиксики нашли последовательность из nn kk-битных чисел и руководство к действию. Чтобы открыть таинственную дверь, нужно выполнить последовательность из mm операций одного из двух типов:

  • 1,x,y1\\,x\\,y --- поменять число в позиции xx на число yy;
  • 2,l,r2\\,l\\,r --- посчитать значение функции f(l,r)f(l, r).

Функция f(l,r)f(l, r) определяется так:

  • f(l,l)=a_lf(l, l) = a\_l;
  • f(l,r)=!(f(l,r−1)f(l, r) = !(f(l, r-1) \& a_r)a\_r), где ! --- операция побитового отрицания числа, а & --- операция побитового И двух чисел.

Помогите фиксикам найти значения, полученные в ходе выполнения всех операций второго типа.

입력

В первой строке даны два числа n,m,kn, m, k (1≤n,m≤2⋅105,1≤k≤311 \le n, m \le 2 \cdot 10^5, 1 \le k \le 31) --- количество чисел в последовательности, число операций и длина числа.

Во второй строке даны nn чисел a_ia\_i (0≤a_i≤2k−10 \le a\_i \le 2^k-1) --- исходное состояние последовательности.

В следующих mm строках даны запросы.

Для запроса первого типа записаны три числа 1,x,y1\\,x\\,y (1≤x≤n,0≤y≤2k−11 \le x \le n, 0 \le y \le 2^k-1) --- позиция в последовательности и новое значение.

Для запроса второго типа записаны три числа 2,l,r2\\,l\\,r (1≤l≤r≤n1 \le l \le r \le n) --- левая и правая граница подотрезка, на котором нужно посчитать значение функции.

출력

Для каждого запроса второго типа выведите одно целое число --- результат применения операции на этом отрезке.

예제1

  1. 예제 1

    입력
    4 4 5
    31 0 12 4
    2 1 4
    2 2 3
    1 3 19
    2 2 4
    
    예상 출력
    31
    31
    27