На вход программы подаются строчные английские буквы. Ввод этих букв заканчивается точкой (другие символы, отличные от «.» и букв «a».. «z» во входных данных отсутствуют. Требуется написать программу на одном из языков программирования, которая будет печатать буквы, встречающиеся во входной последовательности, в порядке увеличения частоты их встречаемости. Каждая буква должна быть распечатана один раз. Точка при этом не учитывается. Если какие-то буквы встречаются одинаковое число раз, то они выдаются в алфавитном порядке. Например, пусть на вход подаются следующие символы:
colaclc
В данном случае программа должна вывести:
аolc
program C4;
uses crt;
var
a:array[0..25] of integer;
m:array[0..25] of 'a'..'z';
ch:char;
i,j,k:integer;
Begin
for i:=0 to 25 do
begin
a[i]:=0;
m[i]:=chr(ord('a')+i);
end;
read(ch);
while ch<>'.' do
begin
a[ord(ch)-ord('a')]:=a[ord(ch)-ord('a')]+1;
read(ch);
end;
for i:=1 to 25 do
for j:=0 to 24 do
if a[j]>a[j+1] then
begin
k:=a[j];
ch:=m[j];
a[j]:=a[j+1];
m[j]:=m[j+1];
a[j+1]:=k;
m[j+1]:=ch;
end;
i:=0;
while a[i]=0 do inc(i);
for j:=i to 25 do write(m[j]);
End.

