문제 113
XOR 다중집합
처음에 비어 있는 음이 아닌 정수 다중집합 $S$가 있다. $\oplus$는 비트별 XOR 연산이다. 원소를 나열한 수열의 인덱스는 $0$부터 $\lvert S\rvert-1$까지이며, 중복 원소도 각각 센다. 다음 $Q$개의 명령을 순서대로 처리해 보자.
- $0\ x$: $x$를 하나 추가한다.
- $1\ x$: $x$를 하나 삭제한다. 없다면 무시한다.
- $2\ x$: $x$의 개수를 구한다.
- $3\ x$: 모든 $a\in S$에 대한 $a\oplus x$의 최솟값과 최댓값을 구한다.
- $4\ k$: $S$를 오름차순으로 나열했을 때 인덱스 $k$의 값을 구한다.
- $5\ x\ k$: 모든 $a\in S$에 대한 $a\oplus x$를 오름차순으로 나열했을 때 인덱스 $k$의 값을 구한다.
- $6\ x\ t$: $a\oplus x<t$인 원소 $a$의 개수를 구한다.
- $7\ x$: $S$의 모든 원소 $a$를 $a\oplus x$로 바꾼다.
입력
첫 번째 줄에 정수 $Q$가 주어진다. $(1 \le Q \le 200\,000)$
두 번째 줄부터 $Q$개의 줄에 걸쳐 본문에서 설명한 형식의 명령이 주어진다. 각 명령의 정수는 공백으로 구분되어 주어진다. $(0 \le x \le 2^{31}-1; 0 \le k \le 200\,000; 0 \le t \le 2^{31})$
출력
$2$번부터 $6$번 명령의 답을 명령이 주어진 순서대로 한 줄에 하나씩 출력한다. $3$번 명령의 답은 최솟값과 최댓값을 공백으로 구분하여 출력한다.
$S$가 비어 있다면 $3$번 명령은 -1 -1을 출력한다. $4$번 또는 $5$번 명령에서 인덱스 $k$의 원소가 없다면 $-1$을 출력한다.
예제 입력 1
11 0 2 0 5 0 5 2 5 3 1 4 1 6 1 4 7 3 2 1 1 6 5 0 1
예제 출력 1
2 3 4 5 1 1 6