Нужно передать водителю сумму, не меньшую суммарной стоимости всех пассажиров, передавших деньги. Очевидно, чтобы купюр было как можно меньше, сами купюры должны иметь как можно больший номинал. Кроме того, тем, кто передал 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
Ошибка в том, что Пайтон - язык со строгой динамической типизацией, т.е. тип переменной определяется при первом присваивании и в дальнейшем не может быть изменен. Оператор input читает строку символов и h,w получаеют символьный тип. Вы пытаетесь над ними выполнить арифметическую операцию и получаете ошибку.
Попробуйте такую запись:
<span>h = int(input('Рост(см)->'))
w = int(input('Вес(кг)->')</span>)
Program E2_1;
Сколько раз будет выполнен оператор M := a[k]
при заданном массиве (3, 8, 7, 9, 4, 10, 2, 12)?
Ответ: 4 раза, т.к. условие
if M < a[k]
выполнится при a[k]=8, 9, 10, 12
------
Program E2_2;
в записи оператора s := s + a[k] была допущена ошибка - вместо него был записан оператор s := s + 1. Каким оказался ответ после исполнения неверной программы, если в качестве элементов массива были введены числа (-1, 3, -2, 4, -5, 6, -7, 8)?
Ответ: s = 4, т.к. условие
if a[k] < 0
выполнится при a[k]=-1, -2, -5, -7
---------
Какие значения примут элементы массива A[3] и A[4] после выполнения последовательности операторов, если первоначально
A[3]:=5;
A[4]:=6;
A[3]:=A[4];
A[4]:=A[3]?
Ответ:
A[3] = 6;
A[4] = 6;
-----------
В представленном фрагменте программы значения одномерного массива задаются с помощью оператора цикла. Чему будет равно A[5]?
For i := 1 To 5 Do Begin
A[2*i - 1] := i;
A[2*i] := i*i
End.
Элементу A[5] присвоит значение строка
A[2*i - 1] := i;
i при этом будет равно 3.
Ответ: A[5] = 3
Ответ:
Вариант Б быстрее на 2 с.
Объяснение:
5 Мбайт = 5×2²⁰ байт = 5×2²³ бит.
1) по варианту А.
Сжали вдвое, получили объем 5×2²² бит. Время передачи составит
(5×2²²) / 2²⁰ = 5×2² = 20 с.
Общее время 20 + 20 +2 = 42 с.
2) по варианту Б.
Время передачи (5×2²³) / 2²⁰ = 5×2³= 40 с.
Вариант Б быстрее на 2 с.