
Давным-давно цены на билеты в московском метро были такими: 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 Ограничения Процессорное время: 1 секунда Память: 64 MB На python пожалуйста)

Ответы на вопрос

Ответ: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)
Объяснение:



Для решения этой задачи можно использовать жадный алгоритм. Мы будем выбирать максимальное количество билетов на 60 поездок, затем на 20 поездок, затем на 10 поездок, затем на 5 поездок, и, наконец, на 1 поездку. Это обеспечит нам максимальное количество поездок за минимальную стоимость.
Вот решение на Python:
pythondef calculate_tickets(n):
tickets_60 = n // 60
remaining = n % 60
tickets_20 = remaining // 20
remaining %= 20
tickets_10 = remaining // 10
remaining %= 10
tickets_5 = remaining // 5
remaining %= 5
tickets_1 = remaining
return tickets_1, tickets_5, tickets_10, tickets_20, tickets_60
# Ввод количества поездок n
n = int(input())
# Вычисляем количество билетов каждого типа
result = calculate_tickets(n)
# Выводим результат
print(*result)
Вы можете вводить число n, и программа выдаст необходимое количество билетов каждого типа для минимальной стоимости и максимального количества поездок.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili