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

Оператор вывода write (2,14,27,200);
Результат ?

Показать ответ
Ответ:
slava531
slava531
04.04.2021 06:34

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).

0,0(0 оценок)
Ответ:
лом15
лом15
12.03.2022 04:54

class ATM:

   def __init__(self):

       self.money = 0.0

       self.password = '1234'

   def add_money(self, _money) -> bool:

       if float(_money) > 0.0:

           self.money += float(_money)

           return True

       return False

   def pass_check(self) -> bool:

       tries = 1

       while input('Give me the password:\n> ') != self.password:

           if tries > 2:

               return False

           tries+=1

           print(f'#{tries}: Bad password')

       return True

   def withdraw(self, _money) -> bool:

       if not self.pass_check():

           self.close_session()

           return False

       if float(_money) > 0.0 and self.money - float(_money) >= 0.0:

           self.money -= float(_money)

           return True

       return False

   def get_balance(self) -> float:

       return self.money

   def close_session(self) -> None:

       raise SystemExit(0)

# Пример использования 1

_atm = ATM()

_atm.add_money(1700)

print('Your balance is ' + str(_atm.get_balance()))

_atm.withdraw(1600)

print('Your balance is ' + str(_atm.get_balance()))

# Пример использования 2

_atm = ATM()

if _atm.add_money(1600):

   print('Money successfully added!')

else:

   print('Error while money adding.')

print('Your balance is ' + str(_atm.get_balance()))

if _atm.withdraw(1700):

   print('Successfully withdrawn!')

else:

   print('Error while money withdrawing.')

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота