Маршрутка задачка по программированию

Маршрутка задачка по программированию

Задать свой вопрос
Женя Пиликина
Паскаль?
Юленька Радакина
Питон
Константин
Но можно и паскаль
1 ответ

Нужно передать водителю сумму, не наименьшую суммарной цены всех пассажиров, передавших деньги. Очевидно, чтоб купюр было как можно меньше, сами купюры обязаны иметь как можно больший номинал. Не считая того, тем, кто передал 10 рублей, сдачу давать не необходимо, передавшему 50 рублей сдачей можно возвращать не более четырех десятирублевок, передавшему 100 рублей не больше 4 10-рублевой и 50-рублевку либо не более 9 10-рублевок.

Например, подойдет такое решение: считываем n10, n50 и n100 количество 10-рублевок, 50-рублевок и 100-рублевок. Отдаем по четыре 10-рублевки каждому, заплатившему 50 рублей, потом тем, кто дал 100 рублей. Оставшиеся 10-рублевки по 5 штук отдаем на сдачу со 100 рублей (таких людей k), и если кто-то остался без сдачи, пытаемся вручить им по 50 рублей.

Реализация (python 3):

n10, n50, n100 = map(int, input().split())

n10 = max(n10 - 4 * (n50 + n100), 0)

k = min((n10 + 4) // 5, n100)

n10 = max(n10 - 5 * k, 0)

n50 = max(n50 - (n100 - k), 0)

print(n10 + n50 + n100)

Пример ввода:

7 2 1

Пример вывода:

2

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт