1821: 维护全序集

题目描述


这是一道模板题,其数据比「普通平衡树」更强。
如未特别说明,以下所有数据均为整数。
维护一个多重集
S
S ,初始为空,有以下几种操作:

x
x 加入
S
S
删除
S
S 中的一个
x
x,保证删除的
x
x 一定存在

S
S 中第
k
k 小

S
S 中有多少个元素小于
x
x

S
S 中小于
x
x 的最大数

S
S 中大于
x
x 的最小数
操作共
n
n 次。

输入


第一行一个整数
n
n,表示共有
n
n 次操作 。
接下来
n
n 行,每行为以下几种格式之一 :
0 x,把
x
x 加入
S
S
1 x,删除
S
S 中的一个
x
x,保证删除的数在
S
S 中一定存在
2 k,求
S
S 中第
k
k 小的数,保证要求的数在
S
S 中一定存在
3 x,求
S
S 中有多少个数小于
x
x
4 x,求
S
S 中小于
x
x 的最大数,如果不存在,输出
-1
−1
5 x,求
S
S 中大于
x
x 的最小数,如果不存在,输出
-1
−1

输出


对于每次询问,输出单独一行表示答案。

样例输入


5
0 3
0 4
2 2
1 4
3 3

样例输出


4
0

提示


数据范围与提示
1 \leq n \leq 3 \times 10 ^ 5, 0 \leq x \leq 10 ^ 9
1≤n≤3×105,0≤x≤109

来源/分类


平衡树 数据结构

请先 登录 后评论
  • 0 关注
  • 0 收藏,404 浏览
  • 轩爸 提出于 2019-08-02 22:25