题库练习 序列查询
← 上一题 下一题 →

A6904 | 序列查询

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

有一个一开始为空的序列 $序列A$(可以理解成一个“袋子”,里面的数允许重复)。

一共有 $Q$ 次操作,每次操作是下面三种之一:

1. $1\ x$:把数字 $x$ 放进 $序列A$ 里(插入一个 $x$)。
2. $2\ x\ k$:只看 $序列A$ 里所有满足 $\le x$ 的数字,把它们从大到小排好,输出第 $k$ 个(第 $k$ 大)。如果不够 $k$ 个,输出 $-1$。
3. $3\ x\ k$:只看 $序列A$ 里所有满足 $\ge x$ 的数字,把它们从小到大排好,输出第 $k$ 个(第 $k$ 小)。如果不够 $k$ 个,输出 $-1$。

输入格式

第一行一个整数 $Q$。
接下来 $Q$ 行,每行是一次操作(格式如上)。

输出格式

遇到操作 $2$ 或 $3$ 时,输出一行答案。

输入输出样例

输入 #1
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
输出 #1
20
20
30
-1
-1
1
C++ 编辑器
输入
输出