#B. 猫咪邮政
猫咪邮政
题目描述
有惊无险下,猫娘通过了 Zenith 的测试,猫娘终于可以玩 Zenith 电脑上的游戏了,猫娘注意到 Zenith 的电脑上有一个叫“猫咪邮政”的游戏,对猫猫很感兴趣的他点进去发现是个快递分拣的游戏,兴致极高的猫娘叫上了 Zenith 陪他一起玩这个游戏。
在游戏里,快递传送带上依次送来了 个快递,编号 ,每个快递拥有编号 、重量 。分拣区存在两个暂存区域 A、B。
基础分拣规则:若快递重量 ,则放入 A 区;否则放入 B 区。
所有快递依次入区完成后,我们要进行 次取出操作:每次操作格式为 op x;
op = 1:从 A 区取出当前重量第 大的快递并输出其编号;op = 2:从 B 区取出当前重量第 大的快递并输出其编号。
对于所有操作,若指定区域中不存在第 大的快递,则输出 -1。
排序规则:按快递从重到轻排序;若快递一样重,则按照编号从小到大排序。
注意:取出快递之后,该快递永久移除,后续排序不再包含它。
输入格式
第一行两个整数 (),分别代表快递的数量和操作次数;第二行 个整数 (), 表示编号 的快递重量;接下来 行,每行两个整数 ()、()。
注意 可以大于对应区域当前已有的快递数量(例如下面的样例中 而 ),此时该次操作直接输出 -1。
输出格式
对于每一条操作:若指定快递区存在第 个快递,则输出该快递的编号;否则输出 -1。每条结果单独占一行。
4 3
10 5 8 3
1 2
2 5
2 1
3
-1
2
样例解释
按要求分拣好快递并排好序后(记作 ),此时 A 区有:、;B 区有:、。接下来 次操作:
- 操作 1:
op=1, x=2,从 A 区里取出第二大的快递,也就是 ,输出其编号为3; - 操作 2:
op=2, x=5,从 B 区里取出第五大的快递,但 B 区里仅有两个快递,所以输出-1; - 操作 3:
op=2, x=1,从 B 区里取出最大的快递,也就是 ,所以输出2。