6
Объяснение:
Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова.
Мы можем начать наш код либо с нуля, либо с единицы, значит, чертим два дерева. Если мы закодируем букву нулём или единицей, для других букв не будет выполняться условие Фано, поэтому нужно добавить ноль или единицу (на каждом дереве появилось две ветки). 10 мы не можем использовать, так как с него начинается кодовое слово буквы А. Кратчайшие кодовые слова - 00, 01, 11. Сумма длин равна 2 * 3 = 6
var a:array [1..n] of integer;
i,j,k,l:integer;
begin
{создание и вывод массива}
for i:=1 to n do
begin
a[i]:=random(21)-10;
write (a[i],' ');
end;
writeln;
{сортировка массива}
for j:=1 to n do
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
k:=a[i];
a[i]:=a[i+1];
a[i+1]:=k;
end;
{Удаление нулей}
k:=0;
while k<>n do
begin
k:=k+1;
if a[k]=0 then
begin
l:=l+1;
for i:=k to n-1 do
a[i]:=a[i+1];
end;
end;
{Вывод массива}
for i:=1 to n-l do
write (a[i],' ');
end.