#B. 猫咪邮政

猫咪邮政

题目描述

有惊无险下,猫娘通过了 Zenith 的测试,猫娘终于可以玩 Zenith 电脑上的游戏了,猫娘注意到 Zenith 的电脑上有一个叫“猫咪邮政”的游戏,对猫猫很感兴趣的他点进去发现是个快递分拣的游戏,兴致极高的猫娘叫上了 Zenith 陪他一起玩这个游戏。

在游戏里,快递传送带上依次送来了 nn 个快递,编号 1,2,3,…,n1,2,3,\dots,n,每个快递拥有编号 idid、重量 ww。分拣区存在两个暂存区域 A、B。

基础分拣规则:若快递重量 >5> 5,则放入 A 区;否则放入 B 区。

所有快递依次入区完成后,我们要进行 mm 次取出操作:每次操作格式为 op x;

  • op = 1:从 A 区取出当前重量第 xx 大的快递并输出其编号;
  • op = 2:从 B 区取出当前重量第 xx 大的快递并输出其编号。

对于所有操作,若指定区域中不存在第 xx 大的快递,则输出 -1。

排序规则:按快递从重到轻排序;若快递一样重,则按照编号从小到大排序。

注意:取出快递之后,该快递永久移除,后续排序不再包含它。

输入格式

第一行两个整数 n,mn, m(1≤m≤n≤10001 \le m \le n \le 1000),分别代表快递的数量和操作次数;第二行 nn 个整数 w1,w2,…,wnw_1, w_2, \dots, w_n(1≤wi≤201 \le w_i \le 20),wiw_i 表示编号 ii 的快递重量;接下来 mm 行,每行两个整数 opop(1≤op≤21 \le op \le 2)、xx(1≤x≤1091 \le x \le 10^9)。

注意 xx 可以大于对应区域当前已有的快递数量(例如下面的样例中 n=4n = 4 而 x=5x = 5),此时该次操作直接输出 -1。

输出格式

对于每一条操作:若指定快递区存在第 xx 个快递,则输出该快递的编号;否则输出 -1。每条结果单独占一行。

4 3
10 5 8 3
1 2
2 5
2 1
3
-1
2

样例解释

按要求分拣好快递并排好序后(记作 {id,w}\{id, w\}),此时 A 区有:{1,10}\{1,10\}、{3,8}\{3,8\};B 区有:{2,5}\{2,5\}、{4,3}\{4,3\}。接下来 mm 次操作:

  • 操作 1:op=1, x=2,从 A 区里取出第二大的快递,也就是 {3,8}\{3,8\},输出其编号为 3;
  • 操作 2:op=2, x=5,从 B 区里取出第五大的快递,但 B 区里仅有两个快递,所以输出 -1;
  • 操作 3:op=2, x=1,从 B 区里取出最大的快递,也就是 {2,5}\{2,5\},所以输出 2。