• Предмет: Информатика
  • Автор: gotoredispashka
  • Вопрос задан 6 лет назад

СРОЧНО!!!

Билеты на метро

Давным-давно цены на билеты в московском метро были такими:

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), условиями и функцией модуля

Ответы

Ответ дал: dima228132
0

Ответ:

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)

Объяснение:

Вас заинтересует