Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, решили использовать неравномерный двоичный код, позволяющий однозначно
декодировать двоичную последовательность. Для букв А, Б, В и Г использовали такие
кодовые слова: А - 10, Б - 110, В - 111, Г - 001. Укажите кратчайшее кодовое слово для
буквы Д, при котором код будет допускать однозначное декодирование. Если таких
кодов несколько, укажите код с наименьшим числовым значением.
Выберите один ответ.
def zadanie(s)
numbers = []
s.split(" ").each {|t|
break if t == "2*109"
numbers << t.to_i
}
max = numbers[0] * numbers[4]
for i in 0..numbers.size - 4
for j in i + 4..numbers.size - 1
p [i,j]
m = numbers[i] * numbers[j]
max = m if m % 2 == 1 and m > max
end
end
if max % 2 == 1
return max
else
return "IMPOSSIBLE"
end
end
# Примеры применения
p zadanie("11 12 2 5 7 6 10 2 8 3 2*109 4")