Нужно передать водителю сумму, не меньшую суммарной стоимости всех пассажиров, передавших деньги. Очевидно, чтобы купюр было как можно меньше, сами купюры должны иметь как можно больший номинал. Кроме того, тем, кто передал 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
=ЕСЛИ(A1>B1;ЗАМЕНИТЬ(A1;3;3;B1);ЗАМЕНИТЬ(B1;3;3;A1))
Объяснение:
Смотри картинки
Функция ЕСЛИ - позволяет в зависимости от условия выводить два результата. Первый результат возвращается когда, условие истинно, второй результат, когда условие ложно.
ЕСЛИ (условие; первый результат; второй результат)
Здесь сравниваем какое число больше и в зависимости от этого производим замену.
Функция ЗАМЕНИТЬ - позволяет заменить указанное число символов в старой ячейке новыми символами.
ЗАМЕНИТЬ (старая ячейка (в ней заменяем символы, заменяемые символы пропадают); начальная позиция (с какого символа начинаем заменять); число символов (количество заменяемых символов); новые символы (которые вставляем))
Здесь в большем числе убираем 3-5 цифры (т.е. три символа), а вставляем значение меньшего числа.
Поделитесь своими знаниями, ответьте на вопрос:
Оператор for Сколько раз будет выполнен цикл for n := 1 to 62 do?
До тих пір, поки не буде 63