第2个回答 2013-01-22
军事机密?只有快排能做,其它超时。
代码:
type
arr=array[1..200000] of longint;
procedure qs(var x:arr;l,r:longint);//快排
var
i,j,m,t:longint;
begin
i:=l;j:=r;m:=x[random(r-l+1)+l] ;
repeat
while x[i]<m do i:=i+1;
while x[j]>m do j:=j-1;
if i<=j then
begin
t:=x[i];x[i]:=x[j];x[j]:=t;
i:=i+1;j:=j-1;
end;
until i>j;
if j>l then qs(x,l,j);
if i<r then qs(x,i,r);
end;
var
a,b:arr;
n,i,t,m:longint;
begin
randomize;
readln(n);
for i:=1 to n do read(a[i]);
qs(a,1,n);
readln(m);
for i:=1 to m do readln(b[i]);
for i:=1 to m do writeln(a[b[i]]);
end.
end.本回答被网友采纳