Cod sursa(job #408502)

Utilizator hungntnktpHungntnktp hungntnktp Data 3 martie 2010 05:03:53
Problema Sortare prin comparare Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 0.75 kb
{$inline on}
CONST
 TFI='algsort.in';
 TFO='algsort.out';
 MAX=500001;
TYPE
 arr1int=array[0..MAX] of longint;
VAR
 fi,fo:text;
 i,n:longint;
 a:arr1int;

PROCEDURE       sort(l,r:longint);inline;
var
 i,j,k,tg:longint;
begin
 i:=l;
 j:=r;
 k:=a[(l+r) div 2];
 repeat
  while a[i]<k do inc(i);
  while a[j]>k do dec(j);
  if i<=j then
   begin
    if i<j then
     begin
      tg:=a[i];
      a[i]:=a[j];
      a[j]:=tg;
     end;
    inc(i);
    dec(j);
   end;
 until i>j;
 if l<j then sort(l,j);
 if i<r then  sort(i,r);
end;

BEGIN
 assign(fi,tfi);reset(fi);
 assign(fo,tfo);rewrite(fo);
  reaD(fi,n);
  for i:= 1 to n do read(fi,a[i]);
  sort(1,n);
  for i:= 1 to n do write(fo,a[i],' ');
 close(fi);
 close(fo);
END.