Cod sursa(job #210759)

Utilizator FllorynMitu Florin Danut Flloryn Data 28 septembrie 2008 22:58:17
Problema Ordine Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.14 kb
program pascal;
var f,g:text; c:char;
    v:array[97..122] of longint;
    a:array[1..2000000] of char;
    poz,poz2,aux,i,k,n,p:longint; max:integer;

    procedure citire;
    begin
    n:=0;
    max:=0;
    while not seekeof(f) do
        begin
         n:=n+1;
         read(f,c);
         v[ord(c)]:=v[ord(c)]+1;
         if ord(c)>max then max:=ord(c);
        end;
    end;

  procedure formare;
  begin
  poz:=1;
  poz2:=2;
  for i:=97 to max do
    begin
     for k:=1 to v[i] do
              begin
                a[poz]:=chr(i);
                poz:=poz+2;
              end;
     if poz>poz2 then
             begin
               aux:=poz;
               poz:=poz2;
               poz2:=aux;
             end;
    end;

   end;

   procedure afisare;
   begin
    p:=0;
    i:=1;
    while p<>n do
     begin
     if ord(a[i])<>0 then
             begin
                write(g,a[i]);
                p:=p+1;
              end;
      i:=i+1;
      end;
   end;

begin
assign(f,'ordine.in'); reset(f);
assign(g,'ordine.out'); rewrite(g);
citire;
formare;
afisare;
close(f);
close(g);
end.