Cod sursa(job #110265)

Utilizator ionescu88alex ionescu ionescu88 Data 25 noiembrie 2007 23:27:40
Problema Ordine Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.02 kb
var fi,fo:text;
    expresie:ansistring;
    lit:array['a'..'z'] of longint;
    expr:array[1..1100000]of char;
    i,poz,nrelem:longint;
procedure Rezolv_Expresie;
var k,j:longint;
    i:char;
    ok:byte;
begin
     poz:=1; ok:=0; nrelem:=1;
     for i:='a' to 'z' do
      if lit[i]>0 then
        begin
          k:=poz; ok:=0;
          for j:=1 to lit[i] do
             begin
               expr[k]:=i;
               if k>nrelem then nrelem:=k;
               if (expr[k-1]=',')and(ok=0) then begin poz:=k-1; ok:=1; end;
               inc(k,2);
             end;
          if ok=0 then
            if expr[k-1]=',' then poz:=k-1
                             else poz:=k;
        end;
end;

begin
  assign(fi,'ordine.in'); reset(fi);
  assign(fo,'ordine.out'); rewrite(fo);
  read(fi,expresie);
  for i:=1 to length(expresie) do
     begin
       inc(lit[expresie[i]]);
       expr[i]:=','; end;
  Rezolv_Expresie;
  for i:=1 to nrelem do
     write(fo,expr[i]);
  close(fi);
  close(fo);
end.