#H449. 普通平衡树

普通平衡树

题目描述

你需要写一种平衡树数据结构,来维护一些数,其中需要提供以下操作:

  1. 插入数值x。
  2. 删除数值x(若有多个相同的数,应只删除一个)。
  3. 查询数值x的排名(若有多个相同的数,应输出最小的排名)。
  4. 查询排名为x的数值。
  5. 求数值x的前驱(前驱定义为小于x的最大的数)。
  6. 求数值x的后继(后继定义为大于x的最小的数)。

注意:数据保证查询的结果一定存在。

输入格式

第一行为n,表示操作的个数。

接下来n行每行有两个数op和x,op表示操作的序号(1≤op≤6)。

输出格式

对于操作3,4,5,6每行输出一个数,表示对应答案。

8
1 10
1 20
1 30
3 20
4 2
2 10
5 25
6 -1
2
20
20
20

提示

1≤n≤105{10}^5,所有数均在−107{10}^7107{10}^7内。