на Питоне!!!
Пирожные
Для праздничного чаепития необходимо купить n пирожных. В магазине продается всего два вида пирожных, причем пирожных одного вида осталось a штук, а пирожных другого вида осталось b штук. Пирожные одного вида считаются одинаковыми. Сколькими можно купить ровно n пирожных?
Входные данные
В первой строке входных данных записано число n — количество пирожных, которое нужно купить, во второй и третьей строке записаны числа a и b — количество пирожных каждого из двух видов, которые есть в магазине. Все числа — целые, от 1 до 100.
Выходные данные
Программа должна вывести одно целое число — количество различных купить n пирожных.
Примечание
В примере из условия купить 5 пирожных можно пирожных первого вида и 5 пирожных второго вида, 1 пирожное первого вида и 4 пирожных второго вида, 2 пирожных первого вида и 3 пирожных второго вида, 3 пирожных первого вида и 2 пирожное второго вида. Больше нет, так как в магазине есть только 3 пирожных первого вида.
Примеры
Ввод
Вывод
5
3
10
4
Ответы на вопрос:
n = int(input())
a = int(input())
b = int(input())
ans = max(0, min(a, b) - max(0, n-b) + 1)
print(ans)
Объяснение:
Пусть имеется a штук первого типа, b штук второго типа, а требуется взять n пирожных.
Пусть p - количество пирожных первого типа, которые взяли, q - количество пирожных второго типа, которые взяли. Тогда должны выполняться условия:
1) p+q = n
2) 0 <= p <= a
3) 0 <= q <= b
Рассмотрим третье неравенство. q заменим на n-p с учетом первого равенства. После этого преобразуем полученное неравенство.
0 <= n-p <= b
-b <= p-n <= 0
n-b <= p <= n
С учетом второго неравенства, получим окончательные границы для p:
max(0, n-b) <= p <= min(a, n).
Поскольку фиксированное значение p однозначно определяет q, то искомое количество выбрать пары (p, q) равно числу выбрать p - это количество целых чисел на отрезке [max(0, n-b); min(a, n)], то есть ans = min(a, n) - max(0, n-b) + 1. Может так получиться, что ответ неположителен - это из-за того, что выбрать пирожные вообще нельзя. Поэтому нужно и этот момент подкорректировать: ans = max(0, min(a, n) - max(0, n-b) + 1).
правильней будет:
a = 7
b = 22
по действиям:
16 mod 7 = 2
15 div 2 = 7
34 mod 7 = 6
6 * 5 = 30
29 mod 5 = 4
4 * 2 = 8
30 - 8 = 22
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Bro122119.02.2020 20:20
-
Seks738310.02.2020 00:26
-
tatyanapalihova24.05.2022 16:52
-
Anna97749725.11.2021 23:44
-
dan35520.06.2022 03:22
-
Leiona14.05.2020 10:03
-
кира67408.06.2023 07:33
-
Urannnnnn23.03.2021 23:49
-
ирина154616.09.2020 00:37
-
думка319.02.2022 17:29
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.