시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 512 MB 28 18 15 78.947%

문제

문제가 길면 출제자도 수강생도 힘들다. 따라서 이 문제는 너무 친절하게도 짧다.

수열이 주어 졌을 때 두 가지 연산을 할 수 있다.

  1. 특정 구간 a,b에 c를 xor한다.
  2. a번째 원소에 택한 값을 출력한다.

초기 수열과 연산의 정보가 주어 졌을 때, 그에 맞게 출력한다.

입력

첫 번째 줄에 수열의 크기 n (0 < n ≤ 500,000)이 주어진다.

수열의 원소가 0번부터 n - 1 번 까지 차례대로 주어진다. 수열의 원소는 100,000보다 크지 않는 음이 아닌 정수이다.

세 번째 줄에 여러분이 수행 할 쿼리의 개수 m (0 < m ≤ 500,000) 이 주어진다.

그 다음 m 개의 줄에는 t가 주어진다. t 가 1 이면 a,b,c를 입력받아 특정 구간 a, b 의 값을 c로 xor 한다.(0 ≤ a ≤ b < n, 0≤c≤100,000)

t가 2 이면 a를 입력받아 a번째 원소의 값을 출력 한다. (0 ≤ a < n)

출력

쿼리가 2가 들어올 때 마다, a번째 원소를 출력하라.

예제 입력 1

5
1 2 3 4 5
6
1 0 4 9
2 0
2 1
2 2
2 3
2 4

예제 출력 1

8
11
10
13
12