Pagini recente » Cod sursa (job #1175107) | Cod sursa (job #8449) | Cod sursa (job #284731) | Cod sursa (job #1482687) | Cod sursa (job #305841)
Cod sursa(job #305841)
var c,cc,lc,nc:char;
f,g:text;
i,nr:longint;
a:array['a'..'z'] of longint;
begin
assign(f,'ordine.in');reset(f);
assign(g,'ordine.out');rewrite(g);
for c:='a' to 'z' do a[c]:=0;
while not eof(f) do begin
while not eoln(f) do begin
read(f,c);
inc(a[c]);
end;
readln(f);
end;
cc:='a';
nr:=1;
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 (nr=1)and(a[cc]>a[nc]) then begin
for i:=1 to a[nc] do begin
write(g,cc);
write(g,nc);
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
else
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[nc] 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.