Предмет: Информатика, автор: sss1323xcvrua

Билет на одну поездку в метро стоит 15 рублей, билет на 5 поездок стоит 70 рублей, билет на 10 поездок стоит 125 рублей, билет на 20 поездок стоит 230 рублей, билет на 60 поездок стоит 440 рублей.

Пассажир планирует совершить n поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов – минимальна.

Входные данные
Дано одно число n - количество поездок.

Выходные данные
Выведите пять целых чисел, равные необходимому количеству билетов на 1, на 5, на 10, на 20, на 60 поездок. Если для какого-то данного n существует несколько способов приобретения билетов одинаковой стоимости, необходимо вывести ту комбинацию билетов, которая дает большее число поездок.

Примеры
входные данные
1
выходные данные
1 0 0 0 0

Ответы

Автор ответа: nrrprrrrp
1

n = int(input('Введите n: '))

 

r = [0]*4+[n//60]

n -= 60*(n//60)

r[3] = n//20

n -= 20*(n//20)

r[2] = n//10

n -= 10*(n//10)

r[1] = n//5

n -= 5*(n//5)

r[0] = n//1

n -= 1*(n//1)

 

if r[0]*15 >= 70: r[:2]=[0]+[r[1]+1]

if r[0]*15 + r[1]*70 >= 125: r[:3]=[0,0] + [r[2]+1]

if r[0]*15 + r[1]*70 + r[2]*125 >= 230: r[:4]=[0,0,0] + [r[3]+1]

if r[0]*15 + r[1]*70 + r[2]*125 + r[3]*230 >= 440: r[:5]=[0,0,0,0] + [r[4]+1]

 

print(*r)

Похожие вопросы
Предмет: Окружающий мир, автор: Stm37
Предмет: Химия, автор: terrorist5321
Предмет: Алгебра, автор: lizalyamtsova