СРОЧНО!!!
Билеты на метро
Давным-давно цены на билеты в московском метро были такими:
1
поездка — 15
рублей,
5
поездок — 70
рублей,
10
поездок — 125
рублей,
20
поездок — 230
рублей,
60
поездок — 440
рублей.
Пассажир планирует совершить n
поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n
, а общая стоимость приобретенных билетов — минимальна.
Входные данные
Программа получает на вход одно натуральное число n
, не превосходящее 10000
.
Выходные данные
Программа должна вывести пять целых чисел: количество билетов на 1,5,10,20,60
поездок, которое необходимо приобрести. Если для какого-то данного n существует несколько способов приобретения билетов одинаковой суммарной стоимости, необходимо вывести ту комбинацию билетов, которая дает большее число поездок.
Примеры
Ввод
7
Вывод
2 1 0 0 0
Ввод
1
Вывод
1 0 0 0 0
Можно пользоваться только целочисленной арифметикой(+, -, *, div, mod), условиями и функцией модуля
Answers & Comments
Ответ:
n=int(input())
k = n
n60=int(n//60)
n -= n60 * 60
n20=n//20
n -= n20 * 20
n10=n//10
n -= n10 * 10
n5=n//5
n -= n5 * 5
if n20 == 2:
n = 0
n5 = 0
n10 = 0
n20 = 0
n60 += 1
if n > 0 and n5 == 1 and n10 == 1 and n20 == 1:
n = 0
n5 = 0
n10 = 0
n20 = 0
n60 += 1
if n >= 3 and n5 == 1 and n10 == 1:
n = 0
n5 = 0
n10 = 0
n20 += 1
if n20 == 2:
n20 = 0
n60 += 1
if n == 4 and n5 == 1:
n = 0
n5 = 0
n10 += 1
if n10 > 1:
n10 = 0
n20 += 1
if n20 > 1:
n20 = 0
n60 += 1
print(n,n5,n10,n20,n60)
Объяснение: