
В новогодний сладкий подарок нужно положить ровно N конфет. На складе хранятся конфеты, собранные
по одной штуке и по три штуки в одной упаковке. Всего имеется A упаковок по одной конфете и B упаковок по три конфеты. Определите, какое наибольшее число подарков можно собрать из имеющихся конфет, если упаковки из трёх конфет нельзя вскрывать и разделять на отдельные конфеты.

Ответы на вопрос

Ответ:
n = int(input())
a = int(input())
b = int(input())
left = 0
right = (a + 3 * b) // n + 2
while right - left > 1:
mid = (left + right) // 2
count3 = n // 3 * mid
count1 = n % 3 * mid
if a > count1:
count3 -= (a - count1) // 3
if count1 <= a and count3 <= b:
left = mid
else:
right = mid
print(left)
Объяснение:
Перебираем число подарков, проверяем, можем ли мы сделать столько подарков.



Давайте рассмотрим эту задачу. Пусть \( N \) - это общее количество конфет, которые вы хотите положить в подарок, \( A \) - количество упаковок по одной конфете, и \( B \) - количество упаковок по три конфеты.
Имеется \( A \) упаковок по одной конфете, что составляет \( A \) конфет. Также есть \( B \) упаковок по три конфеты, что равно \( 3B \) конфет.
Таким образом, у нас есть общее количество конфет:
\[ A + 3B \]
Это количество конфет должно быть не меньше \( N \) (количество конфет в подарке):
\[ A + 3B \geq N \]
Также у нас есть ограничение на то, что упаковки по три конфеты нельзя вскрывать и разделять. Таким образом, мы не можем использовать дополнительные конфеты из упаковок по три, если нам не хватает конфет из упаковок по одной.
Давайте выразим это ограничение в виде уравнения:
\[ A \geq N \mod 3 \]
где \( \mod \) - операция взятия остатка от деления.
Итак, мы можем максимально собрать подарков в том случае, если \( A + 3B \) минимально и при этом удовлетворяет ограничению \( A \geq N \mod 3 \).
Теперь давайте рассмотрим пример. Предположим, у нас есть 10 конфет (\( N = 10 \)), 5 упаковок по одной конфете (\( A = 5 \)), и 2 упаковки по три конфеты (\( B = 2 \)).
Общее количество конфет:
\[ A + 3B = 5 + 3 \times 2 = 11 \]
Однако мы не можем использовать все 11 конфет для подарка, потому что они превышают требуемые 10. Мы можем использовать только 10 конфет, что соответствует \( A = 4 \) упаковкам по одной конфете.
Таким образом, максимальное количество подарков, которые можно собрать в этом примере, равно 4.


Похожие вопросы
Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili