Cod sursa(job #305811)

Utilizator frozen62iceBLue FirE frozen62ice Data 18 aprilie 2009 17:22:57
Problema Ordine Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.84 kb
var c,cc,lc,nc:char;
    f,g:text;
    a:array['a'..'z'] of longint;
begin
assign(f,'ordine.in');reset(f);
assign(g,'ordine.out');rewrite(g);
while not eof(f) do begin
 while not eoln(f) do begin
  read(f,c);
  inc(a[c]);
 end;
 readln(f);
end;
cc:='a';
lc:='a';
while a[cc]=0 do cc:=chr(ord(cc)+1);
write(g,cc);
dec(a[cc]);
lc:=cc;
nc:=chr(ord(cc)+1);
while a[nc]=0 do nc:=chr(ord(nc)+1);
while ord(cc)<=ord('z') do begin
 while (ord(cc)<=ord('z'))and(a[cc]=0) do cc:=chr(ord(cc)+1);
 if cc=nc then begin
  nc:=chr(ord(cc)+1);
  while (ord(nc)<=ord('z'))and(a[nc]=0) do nc:=chr(ord(nc)+1);
 end;
 if (ord(cc)>ord('z'))or(ord(nc)>ord('z')) then break;
 if cc<>lc then begin
  write(g,cc);
  dec(a[cc]);
  lc:=cc;
 end
  else begin
   write(g,nc);
   dec(a[nc]);
   lc:=nc;
  end;
end;
writeln(g);
close(f);
close(g);
end.