#164. 普通平衡树

普通平衡树

题目描述

您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:

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

输入格式

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

接下来 n\red n 行每行有两个数 opt\red{opt}x\red xopt\red{opt}表示操作的序号(1<=opt<=6)\red{(1<=opt<=6)}

输出格式

对于操作 3,4,5,6\red{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

提示

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

n100000\red{n\le 100000} , 所有数均在 107\red{−10^7}107\red{10^7} 内。