Problem2670--Black Box

2670: Black Box

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 0  Solved: 0
[Status] [Submit] [Creator:]

Description

我们的黑盒代表一个原始数据库。它可以保存一个整数数组,并有一个特殊变量:i。
初始状态下,黑盒是空的、变量i为0。这个黑盒处理一系列命令(事务),有两种类型:
1)ADD(X):将元素X放入黑盒;
2)GET:     将i增加1,从黑盒的所有数据中给出第i小的数字、即“i-minimum”数;请注意,“i-minimum”数是黑盒元素按非降序排序之后的、i-th位置上的数字。


案例1
让我们检查11个命令的可能顺序:

(以上方框属于是一列)
需要制定一种处理给定命令序列的有效算法。ADD/GET命令的最大数量:每种类型30000个。
我们用两个整数数组来描述命令序列:
1:A(1)、A(2)、…A(m):包含在黑盒中的元素序列。A是绝对值不超过2000000000的整数,m<=30000。
例如,我们有一个A =(3,1,-4,2,8,-1000,2)。


2:u(1)、u(2)、…u(n):一个序列,设置了在第1个、第2个、……第N个GET命令出现时,包含进来多少黑盒数字元素。
例如,我们有u=(1,2,6,6)。


黑盒算法假定自然数序列u(1)、u(2)、…u(n)按非降序排序,n<=m 且 对每个p(1<=p<=n)、不等式p <= u(p) <= m是有效的。
它遵循如下事实:
对于u序列的p元素u(p),我们执行一个GET事务,给出A(1)、A(1)、…A(u(p))序列的第p个最小值。

Input

输入数据中(按给定顺序):
第一行包含由空格分隔的2个数:M、N
第二行包含M个数:A(1)、A(2)…A(M)
第三行包含N个数:u(1)、u(2)、…u(n)

Output

写入输出黑匣子回答给定事务序列的序列,每行一个数字。

Sample Input Copy

7 4
3 1 -4 2 8 -1000 2
1 2 6 6

Sample Output Copy

3
3
1
2

Source/Category