xor 쿼리

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

문제

길이가 $N$인 정수 수열 $a=[a_1,a_2,\ldots ,a_N]$이 주어질 때, 다음 쿼리를 처리하는 프로그램을 작성하시오.

  • $1$ $i$ $x$: $a_i$의 값을 $x$로 변경한다.
  • $2$ $i$ $x$: 수열 $[a_1\oplus x,a_2\oplus x,\ldots ,a_N\oplus x]$에서 중복을 포함하여 $i$번째로 큰 값을 출력한다.

여기서 $a\oplus b$는 $a$와 $b$의 비트간 논리적 배타합(bitwise xor) 연산을 의미한다.

입력

첫 번째 줄에 수열 $a$의 길이 $N$이 주어진다. $(1\le N\le 100\, 000)$

두 번째 줄에 $N$개의 정수 $a_1,a_2,\ldots ,a_N$이 공백으로 구분되어 주어진다. $(0\le a_i\le 2^{31}-1)$

세 번째 줄에 쿼리의 수 $Q$가 주어진다. $(1\le Q\le 100\, 000)$

네 번째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 주어진다. $2$번 쿼리는 한 번 이상 주어진다. $(1\le i\le N;$ $0\le x\le 2^{31}-1)$

출력

$2$번 쿼리에 대한 결괏값을 한 줄에 하나씩 출력한다.