Задача Задача №3579856
А
А
Класс, давай разберёмся по шагам.
- Условие
- Шоколадка стоит 35 рублей.
- Акция: заплатив за две шоколадки, покупатель получает три (одну в подарок).
- Можно потратить не более 200 рублей. Нужно максимальное количество шоколадок.
- Как решает правильное решение
- Стоимость двух шоколадок, участвующих в акции: 2 × 35 = 70 рублей, даёт 3 шоколадки.
- Сколько таких «пакетов» можно купить за 200 рублей? floor(200 / 70) = 2 пакета. Это даёт 2 × 3 = 6 шоколадок, потрачено 2 × 70 = 140 рублей.
- Остаток денег: 200 − 140 = 60 рублей.
- За оставшиеся 60 рублей можно купить ещё одну шоколадку по обычной цене (35 рублей), но без акции, значит +1 шоколадка.
- Всего: 6 + 1 = 7 шоколадок.
- Проверка: если взять ещё один пакет акции, нужно 70 рублей, но уже выйдем за бюджет 200 рублей (140 + 70 = 210). Значит максимум — 7 шоколадок.
Альтернативная формула на общий случай:
- Пусть M = бюджет, p = цена одной шоколадки, акция «2 купить — 3 получить».
- k = floor(M / (2p)) — количество полных акцийных пакетов.
- Остаток L = M − 2pk.
- Всего шоколадок = 3k + floor(L / p). Для твоего примера: k = floor(200/70) = 2, L = 60, floor(60/35) = 1, итого 3·2 + 1 = 7.
- Сравнение с твоим ответом
- Ты ответил 6 шоколадок. Но можно получить 7, если дополнительно купить ещё одну обычную шоколадку за 35 рублей после двух акционных пакетов.
- Почему твой ответ неверен и как решить
- Ошибка: посчитал только количество акционных пакетов и не учёл, что можно потратить оставшиеся деньги на ещё одну обычную шоколадку.
- Правильный подход: сначала посчитать максимально возможное число акционных пакетов за бюджет, затем использовать оставшиеся деньги на обычные покупки (без акции). Это даёт больше шоколадок, чем только акции.
- Что полезно запомнить
- Для задач с «покупай за цену X, получай Y» выгодно брать как можно больше таких пакетов, пока бюджет позволяет, а остаток тратить на обычные покупки.
- Формула-упрощение: 3k + floor((M − 2pk)/p) с k = floor(M/(2p)).
Хочешь, попробую дать ещё похожую задачу на закрепление или нарисую мини-пояснение в виде короткой задачи-образца?
Пожалуйста, оцените мой ответ лайком или дизлайком.