для расшифровки нужно применить обратный алгоритм
1) написать название животного
2) для первой буквы названия найти предыдущую по алфавиту
Животные: (некоторые подбирались исходя из ответа)
Улитка - Т
Бык - А
Лев - К
Енот - Д
Ёж - Е
Сова - Р
Зебра - Ж
Белка - А
Утка - Т
Эму - Ь
Ответ - Так держать
"оно не оканчивается на ноль". или, как вариант: "оно не делится и на десять"
Пусть количество флешек равно соответственно a1, a2, a3, a4, причем эти количества уже отсортированы таким образом, что a1≥a2≥a3≥a4.
Рассмотрим худший случай. Выбрали 3 комплекта флешек с максимальным их количеством. a1+a2+a3. После этого добавили одну флешку и получили 100 флешек, среди которых хотя бы одна из наименьшей группы. То есть a1+a2+a3=99 в худшем случае. Значит, a4=113-99=14.
Теперь надо определить наименьшее количество флешек, чтобы гарантированно на руках было 3 вида. Опять же рассмотрим худший случай. Так выбрали флешки, что среди них все флешки первого вида, все флешки второго вида. Но все равно одной флешки третьего вида не хватает. В худшем случае значение a1+a2 должно быть максимально возможным. Казалось бы, есть условие a1+a2+a3=99. Но не стоит забывать про то, что ранее были наложены ограничения на a1, a2, a3, a4: <span>a1≥a2≥a3≥a4. В связи с добавленным позже определением a4=14, ограничение для a3 становится таким: a3</span>≥14. В худшем случае, чтобы максимизировать a1+a2, следует выбрать a3=14. То есть a1+a2=99-14=85. Следовательно, необходимо 85+1=86 флешек, чтобы быть уверенным, что хотя бы три флешки разных видов присутствуют.
Решение приложил.
(О нет! Что-то пошло не так во время добавления ответа
Слишком коротко.<span> Напишите минимум 20 символов, чтобы объяснить все.)</span>
Program;
var a,i:integer;
Begin
for i:=10 to 99 do
read(a);
if (a mod 10+ a div 10=10) then
write(a);
End.