문제 112
정수 구간 집합
처음에 비어 있는 정수 집합 $S$가 있다. 두 정수 $l$, $r$에 대해 $[l,r)$는 $l\le x<r$인 모든 정수 $x$의 집합이다. 다음 $Q$개의 명령을 순서대로 처리해 보자.
- $0\ l\ r$: $[l,r)$의 정수를 모두 $S$에 추가한다.
- $1\ l\ r$: $[l,r)$의 정수를 모두 $S$에서 삭제한다.
- $2\ x$: $x$가 $S$에 포함되는지 판별한다.
- $3\ x$: $x$ 이상이면서 $S$에 포함되지 않은 가장 작은 정수를 구한다.
- $4$: $S$의 원소 수를 구한다.
이미 있는 원소를 추가하거나 없는 원소를 삭제해도 결과는 변하지 않는다. $l=r$인 빈 구간도 허용한다.
입력
첫 번째 줄에 정수 $Q$가 주어진다. $(1 \le Q \le 200\,000)$
두 번째 줄부터 $Q$개의 줄에 걸쳐 본문에서 설명한 형식의 명령이 주어진다. 각 명령의 정수는 공백으로 구분되어 주어진다. $(-2^{63} \le l \le r \le 2^{63}-1; -2^{63} \le x \le 2^{63}-1)$
출력
$2$번부터 $4$번 명령의 답을 명령이 주어진 순서대로 한 줄에 하나씩 출력한다.
$2$번 명령에서는 $x$가 $S$에 포함되면 $1$을, 그렇지 않으면 $0$을 출력한다.
예제 입력 1
12 4 0 1 4 0 4 6 2 4 3 2 4 1 2 5 3 1 2 5 4 0 2 5 3 1
예제 출력 1
0 1 6 5 2 1 2 6