维护全序集【模板】
题目描述:
这是一道模板题,其数据比「普通平衡树」更强。
如未特别说明,以下所有数据均为整数。
维护一个多重集 S ,初始为空,有以下几种操作:
- 把 x 加入 S
- 删除 S 中的一个 x,保证删除的 x 一定存在
- 求 S 中第 k 小
- 求 S 中有多少个元素小于 x
- 求 S 中小于 x 的最大数
- 求 S 中大于 x 的最小数
操作共 n 次。
输入格式:
第一行一个整数 n ,表示共有 n 次操作 。
接下来 n 行,每行为以下几种格式之一 :
0 x
,把 x 加入 S1 x
,删除 S 中的一个 x,保证删除的数在 S 中一定存在2 k
,求 S 中第 k 小的数,保证要求的数在 S 中一定存在3 x
,求 S 中有多少个数小于 x4 x
,求 S 中小于 x 的最大数,如果不存在,输出 −15 x
,求 S 中大于 x 的最小数,如果不存在,输出 −1
输出格式:
对于每次询问,输出单独一行表示答案。
样例输入:
5 0 3 0 4 2 2 1 4 3 3
样例输出:
4 0
提示:
1≤n≤3×105,0≤x≤109
时间限制: 1000ms空间限制: 256MB