Cod sursa(job #210756)

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

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

  procedure formare;
  begin
  poz:=1;
  poz2:=2;
  for i:=97 to 122 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
    for i:=1 to n do
     if ord(a[i])<>0 then write(g,a[i]);
   end;

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