Pagini recente » Cod sursa (job #1938113) | Cod sursa (job #1805690) | Cod sursa (job #2204956) | Cod sursa (job #1565721) | Cod sursa (job #111743)
Cod sursa(job #111743)
var
a : array ['a'..'{'] of longint; { acolada urmeaza dupa 'z' }
fi, fo : text;
nc, i : longint;
s, d, c : char;
function mindif0 (c : char) : char;{cel mai mic caracter care poate fi folosit}
begin
if c <> '{' then {poate fi adevarata dupa ce s-a afisat ultimul caracter}
repeat
c := succ(c)
until (a[c] <> 0) or (c = '{');
mindif0 := c;
end;
begin
assign(fi,'ordine.in'); reset(fi);
assign(fo,'ordine.out'); rewrite(fo);
while not eoln(fi) do
begin
read(fi,c);
inc(a[c]);
inc(nc);
end;
s := mindif0 (chr(ord('a')-1)); d := mindif0(s); c := s;
for i := 1 to nc do
begin
write(fo,c);
dec(a[c]); {cu un caracter mai putin din acest fel}
if a[c] = 0 then
if c = s then
begin
s := d; d := mindif0(d);
c := s;
end
else
begin
d := mindif0(d);
c := s;
end
else
if c = s then
c := d
else
c := s
end;
writeln(fo);
close(fi); close(fo);
end.