Cod sursa(job #702742)

Utilizator mada0222Tomus Madalina mada0222 Data 2 martie 2012 08:55:55
Problema Sortare prin comparare Scor 20
Compilator fpc Status done
Runda Arhiva educationala Marime 0.83 kb
program ssss;
var f,g:text;
i,n:longint;
    a:array[1..500005] of integer;
function pivot(st,sf:longint):longint;
var di,dj,aux,i,j:longint;
   begin
   di:=0; dj:=1; i:=st; j:=sf;
      while i<j do
         begin
           if a[i]>a[j] then
             begin
             aux:=a[i]; a[i]:=a[j]; a[j]:=aux;
             aux:=di; di:=dj; dj:=aux;
             end;
           i:=i+di;
           j:=j-dj;
         end;
      pivot:=i;
   end;
procedure sort(st,sf:longint);
var p:longint;
begin
  if st<sf then
     begin
     p:=pivot(st,sf);
     sort(st,p-1);
     sort(p+1,sf);
     end;
end;
begin
assign(f,'algsort.in'); reset(f);
assign(g,'algsort.out'); rewrite(g);
readln(f,n);
   for i:=1 to n do
     read(f,a[i]);
   sort(1,n);
   for i:=1 to n do
     write(g,a[i],' ');
close(f);
close(g);
end.