xor²

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

음이 아닌 정수만으로 이루어진 길이가 NN인 수열 A_0A\_0, A_1A\_1, \cdots, A_N1A\_{N-1}이 주어진다. 이 때, 다음 쿼리를 수행하는 프로그램을 작성하시오.

  • 1 l r x: l(ix)rl \le \left( i \oplus x \right) \le r0i<N0 \le i < N을 모두 만족하는 모든 정수 ii에 대해, A_iA\_i의 값들을 전부 bitwise XOR하여 출력한다. 단, 해당하는 ii가 없을 경우 00을 출력한다.
  • 2 i x: A_iA\_iA_ixA\_i \oplus x로 설정한다.

\oplus는 bitwise XOR 연산자이다. 인덱스가 00부터 시작함에 유의하라.

입력

첫 번째 줄에 수열의 길이 NN이 주어진다.

두 번째 줄에 NN 개의 정수 A_0A\_0, A_1A\_1, \cdots, A_N1A\_{N-1}이 공백으로 구분되어 주어진다.

세 번째 줄에 쿼리의 수 QQ가 주어진다.

다음 QQ 개의 줄의 각 줄에 쿼리가 주어진다. 각 쿼리는 1 l r x 또는 2 i x 중 한 가지 형식이다.

출력

11번 쿼리가 주어질 때마다 각 줄에 답을 출력한다.

제한

  • 1N,Q200,0001 \le N, Q \le 200\\,000
  • 0A_i<2310 \le A\_i < 2^{31} (0i<N0 \le i < N)
  • 11번 쿼리에서, 0lr< N0 \le l \le r < N이고 0x<N0 \le x < N
  • 22번 쿼리에서, 0i < N0 \le i < N이고 0x<2310 \le x < 2^{31}
  • 11번 쿼리는 11개 이상 주어진다.
  • 입력으로 주어지는 모든 수는 정수이다.

힌트

  • aabb의 bitwise XOR인 aba \oplus b는, 2진법으로 표현했을 때 aabbii 번째 자리가 같으면 aba \oplus bii 번째 자리가 00이고, 서로 다르면 11이 되도록 계산한다.