Нужно передать водителю сумму, не меньшую суммарной стоимости всех пассажиров, передавших деньги. Очевидно, чтобы купюр было как можно меньше, сами купюры должны иметь как можно больший номинал. Кроме того, тем, кто передал 10 рублей, сдачу давать не нужно, передавшему 50 рублей – сдачей можно вернуть не более четырех десятирублевок, передавшему 100 рублей – не больше четырех 10-рублевой и 50-рублевку или не более девяти 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
import copy – импортируется модуль copy
x = {'one': 1, 'two_three': [2, 3]} – создается словарь с ключами one и two_three и значениями 1 и [2, 3]
y = copy.copy(x) – y указывает на поверхностную копию x. Поверхностная копия – копия, у которой такие же ключи и значения, что и в оригинале. В отличии от copy.deepcopy – глубокого копирования – значения ссылаются на те же объекты, что и оригинал
y['one'] = 'I' – ключу one нового объекта присваивается значение 'I'. В старом объекте ничего не меняется
y['two_three'][0] = 'II' – в значении по ключу two_three нового объекта берется первый элемент (нумерация начинается с нуля) и заменяется на 'II'. Поскольку в старом объекте по этому ключу находится тот же самый объект, то при печати и там список будет изменен
y['two_three'][1] = 'III' – аналогично со вторым элементом списка
print(x) – выводится содержимое x, то есть {'one': 1, 'two_three': ['II', 'III']}
print(y) – выводится содержимое y, то есть {'one': 'I', 'two_three': ['II', 'III']}
На экран будут выведены две строки, написанные выше