Cod sursa(job #109557)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 25 noiembrie 2007 11:50:50
Problema Ordine Scor 0
Compilator fpc Status done
Runda preONI 2008, Runda 1, Clasele 5-8 Marime 0.9 kb
program ordine;
var f,g:text;
    x:char;
    v:array[1..26]of longint;
    i,j,y,s:longint;
begin
assign(f,'ordine.in');
assign(g,'ordine.out');
reset(f);
rewrite(g);
while not eof(f) do
  begin
    read(f,x);
    v[ord(x)-ord('a')+1]:=v[ord(x)-ord('a')+1]+1;
  end;
for i:=1 to 26 do
  begin
    if (v[i]>1)then
      begin
        s:=0;
        for j:=i+1 to 26 do if (v[j]>0)then
          begin
            s:=s+v[j];
            if(s>=v[i]-1)then break;
          end;
        s:=0;
        for y:=i+1 to j do if (v[y]>0)then
          begin
            while (v[y]>0) do
              begin
                write(g,chr(ord('a')-1+i),chr( ord('a')+y-1));
                v[y]:=v[y]-1;
                s:=s+1;
                if (s=v[i]-1)then break;
              end;
          end;
      end;
    if (v[i]>0)then write(g,chr(ord('a')-1+i));
  end;
close(f);
close(g);
end.