控制数据箱(box.c/cpp/pas)
【题目大意】现在给你一个数据箱,支持以下操作,加入元素,第 n次查询操作求当前情况下的第 n 大数。比如说,第 3 次查询操作求第三小的数。当然查询操作的给出方式有些特殊,只是给出一个数字,表示在加入第几个元素后进行查询。【输入数据】第一行,n,m第二行n 个数,表示需要依次插入的数第三行m 个数,表示在插入第几个数后进行操作【输出数据】对于每个操作,输出答案【输入样例】7 43 1 4 2 8 1000 21 2 3 7【输出样例】
3
343【数据范围】对于 30%的数据,1<=n<=10000, 1<=m<=100对于100%的数据, 1<=n<=200000, 1<=m<=10000---------------------------
m<=10000!!!!!!
插入排序不错^ ^ 不过标算是两个堆,平衡树什么的还是不会啊。YM说数据太弱了插入排序都可以。。。。
var a,rn,rm:array[1..200001]of longint; i,n,m,en,st,k,now:longint;procedure cha(x:longint);var next,j:longint;begin if i>m then next:=m+1 else next:=i; a[next]:=x; for j:=next-1 downto 1 do if x