Pagini recente » Cod sursa (job #2859625) | Cod sursa (job #2319532) | Cod sursa (job #1213506) | Cod sursa (job #2692814) | Cod sursa (job #1539173)
type sir=array[1..3000003]of longint;
var a:sir;
n,k,nr,i:longint;
f:text;
function quickselect(st,dr,x:longint;s:sir):longint;
var k,t:longint;
function poz(p:longint):longint;
var i,j,aux:longint;
bun:boolean;
begin
i:=st-1;j:=dr+1;bun:=true;
while bun do
begin
repeat inc(i) until s[i]>=p;
repeat dec(j) until s[j]<=p;
if i<j then
begin
aux:=s[i];
s[i]:=s[j];
s[j]:=aux;
end
else
bun:=false;
end;
poz:=j;
end;
begin
if st=dr then
begin
quickselect:=s[st];
exit
end;
k:=random(dr-st)+st;
k:=poz(s[k]);
t:=k-st+1;
if k<x then quickselect:=quickselect(k+1,dr,x-t,s)
else quickselect:=quickselect(st,k,x,s)
end;
begin
randomize;
assign(f,'sdo.in');
reset(f);
readln(f,n,k);
for i:=1 to n do
read(f,a[i]);
close(f);
nr:=quickselect(1,n,k,a);
assign(f,'sdo.out');
rewrite(f);
writeln(f,nr);
close(f);
end.