Pagini recente » Cod sursa (job #2202248) | Cod sursa (job #3273510) | Autor necunoscut | Cod sursa (job #2508483) | Cod sursa (job #455774)
Cod sursa(job #455774)
Program Sdo;
var f,g:text; i,n,k:longint;
a:array[1..3000000]of longint;
procedure swap (x,y:longint);
var z:longint;
begin
z:=a[x]; a[x]:=a[y]; a[y]:=z;
end;
function partition (l,r:longint):longint;
var u,z:longint;
begin
z:=l;
swap (random (r-l+1)+l,r);
for u:=l to r-1 do
if a[u]<a[r] then begin
swap (u,z);
inc (z);
end;
swap (z,r);
exit (z);
end;
procedure qsort (x,y:longint);
var np:longint;
begin
if x<=y then begin
np:=partition (x,y);
if np=k then writeln (g,a[np]);
if np<k then qsort (np+1,y);
if np>k then qsort (x,np-1);
end;
end;
begin
randomize;
assign (f,'sdo.in'); reset (f);
assign (g,'sdo.out'); rewrite (g);
readln (f,n,k);
for i:=1 to n do read (f,a[i]);
qsort (1,n);
close (f); close (g);
end.