Pagini recente » Cod sursa (job #579769) | Cod sursa (job #2427545) | Cod sursa (job #428742) | Cod sursa (job #1406653) | Cod sursa (job #110098)
Cod sursa(job #110098)
program ordine;
var car : array ['a'..'z'] of longint;
a,b,x : char;
n,m:longint;
fin,fout : text;
function findnext:char;
var i, asta : char;
begin
for i := x to 'z' do
begin
if car[i]<>0 then
begin
asta:=i;
break;
end;
end;
findnext:=asta;
end;
begin
assign (fin,'ordine.in'); reset(fin);
assign (fout,'ordine.out'); rewrite(fout);
n := 0; m:=0;
for x := 'a'to'z' do
car[x]:=0;
while not eoln(fin) do
begin
read(fin,x);
car[x]:= car[x]+1;
n:=n+1;
end;
x:='a';
a:=findnext;
if a <> 'z'then
x:=chr(ord(a)+1);
b:=findnext;
write(fout,a); car[a]:=car[a]-1; m := m+1;
if a <> 'z' then
begin
write(fout,b); car[b]:=car[b]-1; m:= m+1;
while m<n do
begin
if car[a]<>0 then
begin
write(fout,a); car[a]:=car[a]-1; m := m+1;
end
else
begin
if b <'z'then
x:=chr(ord(b)+1);
a:=b; b:=findnext;
end;
if car[b]<>0 then
begin
write(fout,b); car[b]:=car[b]-1; m:= m+1;
end
else
begin
if b <'z'then
x:=chr(ord(b)+1);
b:=findnext;
write(fout,b); car[b]:=car[b]-1; m:= m+1;
end;
end;
end;
writeln(fout);
close(fout);
close(fin);
end.