Cod sursa(job #1195517)

Utilizator maricasorinSorin-Gabriel maricasorin Data 7 iunie 2014 15:57:14
Problema Statistici de ordine Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.84 kb
program akleaminim;
type vector=array [1..20] of longint;
var k,n,i:longint;
    v:vector;
 f,g:text;
function alkleaminim(p,i,n:longint;var v:vector):longint;
 var t,j,aux:longint;
 begin
 if n>i then begin
  t:=0;
  j:=i;
  while (n-t>j) and (j<n) do
   if v[j]>v[n] then begin
    t:=t+1;
    aux:=v[j];
    v[j]:=v[n-t];
    v[n-t]:=aux;
    end
    else j:=j+1;
  aux:=v[n];
  v[n]:=v[n-t];
  v[n-t]:=aux;
  if n-t=p then alkleaminim:=v[p]
   else if n-t<p then alkleaminim:=alkleaminim(p,n-t+1,n,v)
    else if n-t>p then alkleaminim:=alkleaminim(p,i,n-t-1,v);
   end
  else if p=n then alkleaminim:=v[n];
  end;
begin
assign (f,'sdo.in');
reset(f);
assign (g,'sdo.out');
rewrite(g);
readln(f,n,k);
if (n>=1) and (n<=3000000) and (k<=n) and (k>=1) then begin
for i:=1 to n do read(f,v[i]);
write (g,alkleaminim(k,1,n,v));
end;
close(f);
close(g);
end.