Pagini recente » Cod sursa (job #1815558) | Cod sursa (job #2911967) | Cod sursa (job #146728) | Cod sursa (job #1012108) | Cod sursa (job #305826)
Cod sursa(job #305826)
var c,cc,lc,nc:char;
f,g:text;
i:longint;
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';
while (ord(cc)<=ord('z'))and(a[cc]=0) do cc:=chr(ord(cc)+1);
nc:=chr(ord(cc)+1);
while (ord(nc)<=ord('z'))and(a[nc]=0) do nc:=chr(ord(nc)+1);
if a[cc]<a[nc] then lc:=nc
else lc:=cc;
while (ord(nc)<=ord('z'))and(ord(cc)<=ord('z')) do begin
if a[cc]<a[nc] then begin
for i:=1 to a[cc] do begin
write(g,cc);
write(g,nc);
end;
dec(a[nc],a[cc]);
a[cc]:=0;
lc:=nc;
cc:=nc;
nc:=chr(ord(cc)+1);
while (ord(nc)<=ord('z'))and(a[nc]=0) do nc:=chr(ord(nc)+1);
end
else begin
for i:=1 to a[cc] do begin
write(g,nc);
write(g,cc);
end;
dec(a[cc],a[nc]);
a[nc]:=0;
lc:=nc;
nc:=chr(ord(cc)+1);
while (ord(nc)<=ord('z'))and(a[nc]=0) do nc:=chr(ord(nc)+1);
end;
end;
writeln(g);
close(f);
close(g);
end.