Cod sursa(job #946044)

Utilizator RusuAlexeiRusu Alexei RusuAlexei Data 3 mai 2013 18:08:26
Problema Sortare prin comparare Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.86 kb
program radix_sort;
  var n,i:longint;
      a,b:array[1..1000000] of longint;
      c:array [0..99999] of longint;
      bufin,bufout:array[1..100000] of byte;
begin
  assign(input,'algsort.in');
  reset(input);
  settextbuf(input,bufin);
  assign(output,'algsort.out');
  rewrite(output);
  settextbuf(output,bufout);
  readln(n);
  for i:=1 to n do read(a[i]);
  for i:=1 to n do inc(c[a[i]mod 100000]);
  for i:=1 to 99999 do c[i]:=c[i]+c[i-1];
  for i:=n downto 1 do
    begin
      b[c[a[i]mod 100000]]:=a[i];
      dec(c[a[i]mod 100000]);
    end;
  for i:=0 to 99999 do c[i]:=0;
  for i:=1 to n do inc(c[b[i]div 100000]);
  for i:=1 to 99999 do c[i]:=c[i]+c[i-1];
  for i:=n downto 1 do
    begin
      a[c[b[i]div 100000]]:=b[i];
      dec(c[b[i]div 100000]);
    end;
  for i:=1 to n do write(a[i],' ');
  close(input);close(output);
end.