구간 XOR

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

문제

크기가 NN인 수열 A0,A1,,AN1A_0, A_1, \dots, A_{N-1}이 주어진다. 이 수열에 다음 두 종류의 쿼리를 주어진 순서대로 처리한다.

  • 1 i j k: Ai,Ai+1,,AjA_i, A_{i+1}, \dots, A_j 각각에 kk를 xor한다.
  • 2 i j: Ai,Ai+1,,AjA_i, A_{i+1}, \dots, A_j를 모두 xor한 값을 출력한다.

입력

첫째 줄에 수열의 크기 NN이 주어진다.

둘째 줄에 A0,A1,,AN1A_0, A_1, \dots, A_{N-1}이 공백 한 칸으로 구분되어 차례대로 주어진다.

셋째 줄에 쿼리의 개수 MM이 주어지고, 이어지는 MM개의 줄에 쿼리가 한 줄에 하나씩 주어진다.

출력

2번 쿼리를 만날 때마다 그 결과를 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.

제한

  • 1N,M500,0001 \le N, M \le 500{,}000
  • 0Ai100,0000 \le A_i \le 100{,}000이고 AiA_i는 정수
  • 두 종류의 쿼리 모두 0ij<N0 \le i \le j < N
  • 1번 쿼리에서 0k100,0000 \le k \le 100{,}000이고 kk는 정수