문제 168
삭제 가능한 우선순위 큐
처음에 비어 있는 정수 다중집합 $S$가 있다. $S$에는 같은 값이 여러 개 들어갈 수 있다. 다음 $Q$개의 쿼리를 순서대로 처리해 보자.
- $1\ x$: $S$에 정수 $x$를 하나 추가한다.
- $2\ x$: $S$에서 $x$를 하나 삭제한다. $S$에 $x$가 들어 있음이 보장된다.
- $3$: $S$에서 최댓값을 하나 삭제한다.
- $4$: $S$의 최댓값을 구한다.
- $5$: $S$의 원소 수를 구한다. 중복된 원소도 각각 센다.
- $6$: $S$가 비어 있는지 판별한다.
$3$번과 $4$번 쿼리에서는 $S$가 비어 있지 않음이 보장된다.
입력
첫 번째 줄에 정수 $Q$가 주어진다. $(1 \le Q \le 200\,000)$
두 번째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 주어진다. 각 쿼리는 본문에 설명된 형식으로 주어지며, 한 줄의 값은 공백으로 구분되어 주어진다.
$1$번, $2$번 쿼리에는 정수 $x$가 주어진다. $(-10^{18} \le x \le 10^{18})$
출력
$4$번, $5$번, $6$번 쿼리의 답을 쿼리가 주어진 순서대로 한 줄에 하나씩 출력한다. $6$번 쿼리에서는 $S$가 비어 있다면 $1$을, 그렇지 않다면 $0$을 출력한다.
예제 입력 1
11 6 1 7 1 3 1 7 5 2 7 4 3 4 3 6
예제 출력 1
1 3 7 3 1