Cod sursa(job #673713)

Utilizator ciuscatalincius catalin ciuscatalin Data 4 februarie 2012 20:18:34
Problema Ordine Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
Program ordine;
var fi, fo:text;
     v:array['a'..'z'] of longint;
     c, min, prec:char;
     i, n:longint;
begin
assign(fi,'ordine.in'); reset(fi);
assign(fo,'ordine.out'); rewrite(fo);
while not seekeoln(fi) do 
begin
                    read(fi,c);
                    v[c]:=v[c]+1;
                         n:=n+1;
                        end;
prec:=chr(ord('z')+1);
for i:=1 to n do 
begin
          min:=chr(ord('z')+1);
           for c:='a' to 'z' do 
begin
    if (v[c]=(n-i+1) div 2+1) and (v[c]<>0) then begin
                                            min:=c;
                                             break;
                                             end;
        if (c<min) and (v[c]>0) and (prec<>c) then
                                               min:=c;
                 end;
write(fo,min);
v[min]:=v[min]-1;
prec:=min;
end;
writeln(fo);
close(fo);
end.