SOJ ONLINE JUDGE

문제 112

정수 구간 집합

내 상태
미제출
난이도
112번 문제 난이도 보기
Gold I
출제자
rlatjwls7882
시간 제한
1000 ms
메모리 제한
1024 MB
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

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.