Pagini recente » Cod sursa (job #3255735) | Cod sursa (job #341923) | Cod sursa (job #2456510) | Cod sursa (job #710416) | Cod sursa (job #109422)
Cod sursa(job #109422)
program ordine;
var c:char;
s,sn:string;
v:array['a'..'z'] of longint;
f,g:text;
lg,i,k:longint;
begin
assign(f,'ordine.in');
assign(g,'ordine.out');
reset(f);
rewrite(g);
readln(f,s);
lg:=length(s);
sn:='';
for i:=1 to lg do
v[s[i]]:=v[s[i]]+1;
k:=1;
while lg>=1 do
begin
c:='a';
while (c<='z') and (v[c]=0) or ((k>0) and (sn[k-1]=c)) do
c:=succ(c);
if (c>'z')and(k>2) then
begin
sn:=sn+sn[k-1];
sn[k-1]:=sn[k-2];
sn[k-2]:=sn[k];
v[sn[k-1]]:=v[sn[k-1]]-1;
lg:=lg-1;
k:=k+1;
end
else
begin
sn:=sn+c;
v[c]:=v[c]-1;
lg:=lg-1;
k:=k+1;
end;
end;
writeln(g,sn);
close(f);
close(g);
end.