Сдать решение задачи 5-Сдача Полный : 100
Ограничение времени: 500 мс
Ограничение памяти: 512M
Ограничение размера стека: 64M
Задача 5: Сдача
В городе Ж. ещё не очень распространены банковские карты, поэтому в автобусах обычно рассчитываются наличными. Пассажиры норовят заплатить за проезд крупными купюрами, поэтому каждому из них нужно дать ровно N рублей сдачи.
Выходя на рейс, кондуктор обнаружил, что у него осталось ровно A рублёвых монет и ровно B двухрублёвых монет. Определите, какому наибольшему числу пассажиров он сможет выдать N рублей сдачи, используя эти монеты.
Входные данные
Первая строка входных данных содержит целое положительное число N — величину сдачи. Вторая строка входных данных содержит целое неотрицательное число A — количество имеющихся монет в один рубль. Третья строка содержит целое неотрицательное число B — количество монет в два рубля.
Чиcло N, а также общая сумма монет у кондуктора, не превосходят 2×109 рублей.
Выходные данные
Программа должна вывести единственное целое число — максимальное число пассажиров, которым можно выдать сдачу.
Система оценки
Решения, правильно работающие, когда входные числа не превосходят 100, будут оцениваться в
Пример
Ввод
Вывод
Пояснение
5
9
7
4
Каждому пассажиру нужно выдать 5 рублей сдачи. У кондуктора есть 9 рублёвых монет и 7 двухрублёвых монет. Он может выдать трём пассажирам сдачу в виде 5=2+2+1 и ещё одному пассажиру сдачу в виде 5=2+1+1+1. У кондуктора останется три рублёвые монеты, их не хватит на сдачу.
Сдать решение
236
475
Ответы на вопрос:
n = int(input())
a = int(input())
b = int(input())
left = 0
right = (a + 2 * b) // n + 2
while right - left > 1:
mid = (left + right) // 2
count2 = n // 2 * mid
count1 = n % 2 * mid
if a > count1:
count2 -= (a - count1) // 2
if count1 <= a and count2 <= b:
left = mid
else:
right = mid
print(left)
Объяснение:
n = int(input())
a = int(input())
b = int(input())
left = 0
right = (a + 2 * b) // n + 2
while right - left > 1:
mid = (left + right) // 2
count2 = n // 2 * mid
count1 = n % 2 * mid
if a > count1:
count2 -= (a - count1) // 2
if count1 <= a and count2 <= b:
left = mid
else:
right = mid
print(left)
Объяснение:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
goldfox127.04.2022 19:13
-
evozniukk28.09.2021 03:31
-
Dara00504.02.2022 09:01
-
mi198012.01.2021 00:00
-
ОСА71726.03.2023 01:35
-
Alinakamisarova29.01.2020 09:56
-
kotovaalina3126.07.2021 14:39
-
BOILHbIU01.10.2020 01:11
-
aruzhan7klass25.06.2021 13:30
-
tinn115.06.2023 21:56
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.