В новогодний сладкий подарок нужно положить ровно 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)
Объяснение:
Перебираем число подарков, проверяем, можем ли мы сделать столько подарков.