Cod sursa(job #570192)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 2 aprilie 2011 18:13:45
Problema Statistici de ordine Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.78 kb
var     a:array[1..3000000] of longint;
        buf:array[1..30000000] of char;
        n,k,i,j:longint;
        f1,f2:text;

procedure sw(var a,b:longint);
var     t:longint;
begin
  t:=a;
  a:=b;
  b:=t;
end;

procedure qs(left,right:longint);
var     i,j,r:longint;
begin
  i:=left;
  j:=right;
  r:=a[(i+j) div 2];
  while i<j do
    begin
      while r>a[i] do inc(i);
      while r<a[j] do dec(j);
      if i<=j then begin sw(a[i],a[j]); inc(i); dec(j); end;
    end;
  if i<right then qs(i,right);
  if j>left then qs(left,j);
end;

begin
  assign(f1,'sdo.in');
  reset(f1);
  assign(f2,'sdo.out');
  rewrite(f2);
  settextbuf(f1,buf);
  readln(f1,n,k);

  for i:=1 to n do
      read(f1,a[i]);

  qs(1,n);
  write(f2,a[k]);
  close(f2);
end.