1236: LOJ107 - 维护全序集
[Creator : ]
Description
这是一道模板题,其数据比「普通平衡树」更强。
如未特别说明,以下所有数据均为整数。
维护一个多重集 $S$,初始为空,有以下几种操作:
如未特别说明,以下所有数据均为整数。
维护一个多重集 $S$,初始为空,有以下几种操作:
- 把 $x$ 加入 $S$
- 删除 $S$ 中的一个 $x$,保证删除的 $x$ 一定存在
- 求 $S$ 中第 $k$ 小
- 求 $S$ 中有多少个元素小于 $x$
- 求 $S$ 中小于 $x$ 的最大数
- 求 $S$ 中大于 $x$ 的最小数
Input
第一行一个整数 $n$,表示共有 $n$ 次操作 。
接下来 $n$ 行,每行为以下几种格式之一 :
接下来 $n$ 行,每行为以下几种格式之一 :
- ${0\ x}$,把 $x$ 加入 $S$
- ${1\ x}$,删除 $S$ 中的一个 $x$,保证删除的数在 $S$ 中一定存在
- ${2\ k}$,求 $S$ 中第 $k$ 小的数,保证要求的数在 $S$ 中一定存在
- ${3\ x}$,求 $S$ 中有多少个数小于 $x$
- ${4\ x}$,求 $S$ 中小于 $x$ 的最大数,如果不存在,输出 $-1$
- ${5\ x}$,求 $S$ 中大于 $x$ 的最小数,如果不存在,输出 $-1$
Output
对于每次询问,输出单独一行表示答案。
Constraints
$1≤n≤3×10^5,\ 0≤x≤10^9$
Sample 1 Input
5
0 3
0 4
2 2
1 4
3 3
Sample 1 Output
4
0