Pagini recente » Cod sursa (job #2512347) | Cod sursa (job #2319084) | Cod sursa (job #484432) | Cod sursa (job #3250055) | Cod sursa (job #480148)
Cod sursa(job #480148)
{$s-}
var a:array[1..3000000]of longint;
n,k,i:longint;
function partition(p,q:longint):longint;
var x,i,j,aux:longint;
begin
randomize;
x:=random(q-p+1)+p;
aux:=a[p]; a[p]:=a[x]; a[x]:=aux;
x:=a[p];
i:=p;
for j:=p+1 to q do
if a[j]<=x then begin
inc(i);
aux:=a[i]; a[i]:=a[j]; a[j]:=aux;
end;
aux:=a[p]; a[p]:=a[i]; a[i]:=aux;
partition:=i;
end;
function RandSel(p,q,i:longint):longint;
var r,k:longint;
begin
if p=q then RandSel:=a[p]
else begin
r:=partition(p,q);
k:=r-p+1;
if k=i then RandSel:=a[r]
else begin
if i<k then RandSel:=RandSel(p,r-1,i)
else RandSel:=RandSel(r+1,q,i-k);
end;
end;
end;
begin
assign(input,'sdo.in');
reset(input);
assign(output,'sdo.out');
rewrite(output);
read(n,k);
for i:=1 to n do read(a[i]);
write(RandSel(1,n,k));
close(output);
end.