Problem1298--维护全序集

1298: 维护全序集

[Creator : ]
Time Limit : 1 sec  Memory Limit : 256 MB

Description

这是一道模板题,其数据比「普通平衡树」更强。

如未特别说明,以下所有数据均为整数。

维护一个多重集 S S S ,初始为空,有以下几种操作:

  1. x x x 加入 S S S
  2. 删除 S S S 中的一个 x x x,保证删除的 x x x 一定存在
  3. S S S 中第 k k k
  4. S S S 中有多少个元素小于 x x x
  5. S S S 中小于 x x x 的最大数
  6. S S S 中大于 x x x 的最小数

操作共 n n n 次。

输入格式

第一行一个整数 n n n,表示共有 n n n 次操作 。

接下来 n n n 行,每行为以下几种格式之一 :

  • 0 x,把 x x x 加入 S S S
  • 1 x,删除 S S S 中的一个 x x x,保证删除的数在 S S S 中一定存在
  • 2 k,求 S S S 中第 k k k 小的数,保证要求的数在 S S S 中一定存在
  • 3 x,求 S S S 中有多少个数小于 x x x
  • 4 x,求 S S S 中小于 x x x 的最大数,如果不存在,输出 −1 -1 1
  • 5 x,求 S S S 中大于 x x x 的最小数,如果不存在,输出 −1 -1 1

输出格式

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

样例

样例输入

5
0 3
0 4
2 2
1 4
3 3

样例输出

4
0

数据范围与提示

1≤n≤3×105,0≤x≤109 1 \leq n \leq 3 \times 10 ^ 5, 0 \leq x \leq 10 ^ 9 1n3×105,0x109

Source/Category