讨论 / 快排就可以解决啦~
linengwei 2013-08-19 01:35:00
点我顶贴 收藏 删除
type

lt=array[0..1]of longint;

var

i,j,k,l,m,n,x,y,z:longint;

s:array[1..10000]of lt;

procedure qs(a,b:longint);

var l,r,k:longint;

t:lt;

begin

l:=a;r:=b;

k:=s[(a+b)div 2,1];

repeat

while s[l][1]<k do inc(l);

while s[r][1]>k do dec(r);

if l<=r then

begin

t:=s[l];s[l]:=s[r];s[r]:=t;

inc(l);dec(r);

end;

until l>r;

if r>a then qs(a,r);

if l<b then qs(l,b);

end;

function lf(a,b,c:longint):longint;

var i,j,k,l:longint;

begin

k:=c;

for i:=1 to n do

begin

if(s[i][0]>=a)and(s[i][0]<=b)then dec(k);

if k=0 then exit(s[i][1]);

end;

end;

begin

read(n,m);

for i:=1 to n do

begin

s[i][0]:=i;

read(s[i][1]);

end;

qs(1,n);

//for i:=1 to n do writeln(s[i][1],' ',s[i][0]);

for i:=1 to m do

begin

read(x,y,z);

if x>y then begin l:=x;x:=y;y:=l; end;

writeln(lf(x,y,z));

end;

end.

#1 wwwlujunhong@2013-08-19 01:35:00
回复 删除
3q

#2 心云间、凝听@2014-02-28 06:35:29
回复 删除
计数!!
#3 slzxczt@2014-08-16 04:28:55
回复 删除
为什么超光

var a,tt:array[1..3000000]of longint;

n,k,i,m,l,r:longint;

function sort(l,r,k:longint):longint;

var i,j,x,y:longint;

begin

if l=r then exit(a[l]);

i:=l;j:=r;x:=a[(i+j) shr 1];

repeat

while a[i]<x do inc(i);while a[j]>x do dec(j);

if i<=j then

begin

y:=a[i];a[i]:=a[j];a[j]:=y;inc(i);dec(j);

end;

until i>j;

if(k>=i)then exit(sort(i,r,k));if(k<=j)then exit(sort(l,j,k));

exit(x);

end;

begin

readln(n,m);

for i:=1 to n do read(tt[i]);

for i:=1 to m do

begin

a:=tt;

readln(l,r,k);

writeln(sort(l,r,l+k-1));

end;

end.

查看更多回复
提交回复