#B5. 平衡树

平衡树

题目描述

平衡树是一种能够快速维护增删数字,查询第 kk 大的值 等操作的一种数据结构,类似能实现这些操作的二叉查找树(Binary Search Tree) 还有比如非旋 treap、fhq_treap、SBT 等,平衡树的左旋右旋操作是平衡树的精髓之处,同时也让小 Z 十分头痛。它可以防止平衡树退化成一条链,将时间复杂度均摊至 O(logn) 。

不过这次小 Z 观察到了这题数据范围很小,所以请你用链的方式维护上述操作来帮帮他吧。

操作 1:插入数字 xx

操作 2:删除数字 xx

操作 3:查询第 xx 大的数字的值。

特别说明:本题保证插入的数字 xx 互不相同,且操作 2 中的数字 xx 一定存在,操作 3 一定能查询到结果。

输入格式

第一行包含一个正整数 nn 表示操作的总数

接下来 nn 行,每行给出两个正整数 optopt , xx ,分别表示操作的编号和内容。

输出格式

对于每个操作 3,43,4,每行输出一个正整数,表示答案。

样例

5
1 1
1 2
1 3
3 2
3 3
2
3
9
1 2
1 1
1 5
1 4
3 3
2 4
3 1
3 2
3 3
4
1
2
5

数据范围

对于全部的数据,保证 1n1001 \le n \le 1001opt31 \le opt \le 31x1001 \le x \le 100