Cod sursa(job #575301)
var v:array [1..3000000] of longint;
buf1:array[1.. 1 shl 17] of char;
i, j, n, k, rez, aux, q:longint;
f, g:text;
procedure qsort (st, dr:longint);
var s, d, p:longint;
begin
p:=v[random(dr-st)+st];
s:=st; d:=dr;
while s < d do
begin
while v[s]<p do s:= s+1;
while v[d]>p do d:= d-1;
if s<= d then
begin
aux:= v[s]; v[s]:=v[d]; v[d]:=aux;
s:=s+1; d:=d-1;
end;
end;
if k < s then begin if st<d then qsort (st, d); end
else begin if s< dr then qsort (s, dr); end;
end;
begin
assign (f, 'sdo.in'); settextbuf (f, buf1); reset (f);
assign (g, 'sdo.out'); rewrite (g);
randomize;
read (f, n, k);
for i := 1 to n do read (f, v[i]);
qsort (1, n);
q:=v[k];
writeln (g, q);
close (f); close (g);
end.