С БЛОК СХЕМОЙ
program pascal52;
var A: array[1..100] of integer;
NN, i, j: integer;
begin
write('размер массива NN = ');
readln(NN);
for i := 1 to NN do
begin
write('a[' ,i, '] = ');
read(a[i])
end;
for i := 2 to NN do
for j := 1 to i - 1 do
if a[i] = a[j] then begin
writeln('Номера: ', j, ' и ', i);
end;
end.
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9