比赛场次 | 386 |
---|---|
比赛名称 | 清华集训2017模板练习 |
比赛状态 | 已结束比赛成绩 |
开始时间 | 2017-12-02 20:00:00 |
结束时间 | 2017-12-02 22:00:00 |
开放分组 | 全部用户 |
注释介绍 | 重开一次NOI2017时候的模板练习赛 |
题目名称 | 普通平衡树 |
---|---|
输入输出 | phs.in/out |
时间限制 | 1000 ms (1 s) |
内存限制 | 1000 MiB |
测试点数 | 10 简单对比 |
用户 | 结果 | 时间 | 内存 | 得分 |
---|---|---|---|---|
FoolMike | AAAAAAAAAA | 0.250 s | 1.84 MiB | 100 |
栋霸霸 | AAAAAAAAAA | 0.291 s | 4.13 MiB | 100 |
您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:
1. 插入数值$x$;
2. 删除数值$x$(若有多个相同的数,应只删除一个);
3. 查询数值$x$的排名(若有多个相同的数,应输出最小的排名);
4. 查询排名为$x$的数;
5. 求数值$x$的前驱(前驱定义为小于$x$,且最大的数);
6. 求数值$x$的后继(后继定义为大于$x$,且最小的数);
第一行为$n$,表示操作的个数,下面$n$行每行有两个数$opt$和$x$,$opt$表示操作的序号($1<=opt<=6$);
对于操作$3,4,5,6$每行输出一个数,表示对应答案;
10 1 106465 4 1 1 317721 1 460929 1 644985 1 84185 1 89851 6 81968 1 492737 5 493598
106465 84185 492737
1.$n$的数据范围:$n<=100000$;
2.每个数的数据范围:$[-1e7,1e7]$;