시간 제한메모리 제한제출정답맞힌 사람정답 비율
2.5 초 1024 MB65086285.458%

문제

크기가 N인 배열 A[1], A[2], ... A[N]이 주어진다. 이 배열에 다음 업데이트 연산을 M번 시행할 것이다. 단, ^는 Bitwise XOR 연산이다.

  • l r x : li r인 모든 A[i]에 A[i]=A[i]^x를 실행한다.

여기에 다음 쿼리를 해결하는 프로그램을 작성하시오.

  • 1 L R v : L ≤ i ≤ R인 모든 i에 대해 xi=xi^v를 실행한다. 여기서 xi는 i번째 업데이트에서의 x값이다.
  • 2 s e : M개의 업데이트 연산을 시행 후의 배열에서 A[s]^A[s+1]^...^A[e]의 값을 출력한다.

입력

첫째 줄에 N M Q가 공백으로 구분하여 순서대로 주어진다.(1 ≤ N, M, Q ≤ 105)

둘째 줄에 A[1]부터 A[N]까지 공백으로 구분하여 순서대로 주어진다. (0 ≤ A[i] ≤ 109)

다음 M개의 줄에 업데이트 연산을 의미하는 세 개의 정수 l r x가 순서대로 주어진다. (1 ≤ l ≤ r ≤ N, 0 ≤ x ≤ 109 )

다음 Q개의 줄에 쿼리가 주어진다. 각 쿼리는 1 L R v 또는 2 s e 중 한 가지이다. (1 ≤ L ≤ R ≤ M, 0 ≤ v ≤ 109, 1 ≤ s ≤ e ≤ N)

출력

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

예제 입력 1

9 8 9
22 2 20 6 20 3 22 28 7
6 9 11
3 6 9
3 4 14
4 9 30
2 4 30
2 7 22
4 7 5
1 7 29
2 2 9
2 4 5
1 5 6 2
1 1 8 22
2 2 4
2 1 3
2 4 6
1 4 5 7
2 1 3

예제 출력 1

20
2
8
12
19
12

출처

Contest > BOJ User Contest > Good Bye, BOJ > Good Bye, BOJ 2019! H번