題目描述
Black Box是一種原始的數據庫。它可以儲存一個整數數組,還有一個特別的變量i。最開始的時候Black Box是空的.而i等于0。這個Black Box要處理一串命令。
命令只有兩種:
ADD(x):把x元素放進BlackBox;
GET:i加1,然后輸出Blackhox中第i小的數。
記?。旱趇小的數,就是Black Box里的數的按從小到大的順序排序后的第i個元素。例如:
我們來演示一下一個有11個命令的命令串。(如下圖所示)
現在要求找出對于給定的命令串的最好的處理方法。ADD和GET命令分別最多200000個?,F在用兩個整數數組來表示命令串:
1.A(1),A(2),…A(M):一串將要被放進Black Box的元素。每個數都是絕對值不超過2000000000的整數,M$200000。例如上面的例子就是A=(3,1,一4,2,8,-1000,2)。
2.u(1),u(2),…u(N):表示第u(j)個元素被放進了Blaek Box里后就出現一個GET命令。例如上面的例子中u=(l,2,6,6)。輸入數據不用判錯。
輸入輸出格式
輸入格式: 第一行,兩個整數,M,N。
第二行,M個整數,表示A(l)
……A(M)。
第三行,N個整數,表示u(l)
…u(N)。
輸出格式: 輸出Black Box根據命令串所得出的輸出串,一個數字一行。
輸入輸出樣例
輸入樣例#1: 7 4 3 1 -4 2 8-1000 2 1 2 6 6 輸出樣例#1: 3 3 l 2 說明
對于30%的數據,M≤10000;
對于50%的數據,M≤100000:
對于100%的數據,M≤200000。
代碼:
using namespace std; int a[200001],u[200001];
PRiority_queue
新聞熱點
疑難解答