#2113. 查询

查询

题目描述

翁老师给你一个空序列 aa。同时有 qq 次操作,每次询问是以下三种之一:

  • 1 x:向 AA 中插入元素 xx

  • 2 x k:输出 AA 中所有 x\le x 的元素中的第 kk 大值。如果不存在输出 -1

  • 3 x k:输出 AA 中所有 x\ge x 的元素中的第 kk 小值。如果不存在输出 -1

输入格式

第一行包含一个整数 qq,接下来 qq 行每行一次操作。

每行先输入一个整数 opop 代表操作类型。

  • op=1op=1,则继续输入一个整数 xx,代表将 xx 加入集合。
  • op=2op=2,继续输入两个整数 x,kx,k,含义如题目描述所示。
  • op=3op=3,继续输入两个整数 x,kx,k,含义如题目描述所示。

输出格式

输出一共输出若干行,对于操作 2,32,3,输出一个数表示答案。

11
1 20
1 10
1 30
1 20
3 15 1
3 15 2
3 15 3
3 15 4
2 100 5
1 1
2 100 5
20
20
30
-1
-1
1

样例 1 解释

经过前四次操作以后,序列 A = 20 10 30 20

  • 第五次查询大于或等于 151511 小的元素,因此输出了 2020
  • 第六次查询大于或等于 151522 小的元素,因此输出了 2020。由于有两个 2020,因此其中一个可以算作是大于等于 1515 的第 22 小整数。
  • 第七次查询大于或等于 151533 小的元素,因此输出了 3030
  • 第八次查询大于或等于 151544 小的元素,由于不存在,因此输出了 1-1
  • 第九次查询小于或等于 10010055 大的元素,小于等于 100100 的元素只有 44 个,因此输出了 1-1
  • 第十次给序列加入 11,此时序列 A = 20 10 30 20 1
  • 第十一次查询小于或等于 10010055 大的元素,小于等于 100100 的元素有 55 个,第五大的是 11,因此输出了 11

提示

对于 100%100\% 的数据满足

  • 1 q  2× 105 1\leq\ q\ \leq\ 2\times\ 10^5
  • 1 x 1018 1\leq\ x\leq\ 10^{18}
  • 1 k 5 1\leq\ k\leq\ 5