Привет, меня зовут Алиса! Сегодня у меня день рождения, и я хочу угостить своих одноклассников конфетами. Но есть небольшая загвоздка – в магазине, где я успею зайти перед школой, продаются наборы конфет, состоящие из трёх штук. В каждой упаковке находятся две конфеты одного вида и одна конфета другого вида. Внешне упаковки ничем не отличаются друг от друга, поэтому невозможно предугадать, какие конфеты будут внутри.
Моя задача – раздать весьма привередливым девочкам конфеты одного вида. Оставшиеся же конфеты я собираюсь забрать домой. При этом, у меня есть всего 0.5 секунды на это задание и ограничение по памяти составляет 256 мегабайт. Начну пару-тройку конфет раздавать с главного правила – каждой девочке должно достаться такое же количество конфет. То есть, если я решусь раздать шоколадные конфеты, то каждая девочка должна получить одинаковое число шоколадок. Итак, в магазине есть только два вида конфет – шоколадные и карамельные. Чтобы девочкам досталось одинаковое количество конфет, нужно чтобы общее число шоколадок или общее число карамельных конфет делилось на три без остатка. Окей, рассмотрим пару случаев. Если в упаковке лежат две шоколадки и одна карамелька, то по очевидным причинам я могу раздать девочкам шоколадки. Понятно, что общее число шоколадок – это 2, и это число без остатка делится на 3. Интересно, а что будет, если в упаковке лежат две карамельки и одна шоколадка? В этом случае общее число карамельных конфет будет равно 2, и оно также делится на 3 без остатка.
Таким образом, я поняла, что я могу раздать любой вид конфет девочкам, если количество конфет одного вида в упаковке делится на три без остатка. А оставшиеся конфеты я заберу домой и буду наслаждаться ими сама.
Вот и всё, значит, я смогла найти решение для раздачи конфет среди одноклассников. Будет честно и справедливо, а оставшиеся конфеты станут эксклюзивным лакомством только для меня. Этот план хорош и прост в исполнении.