26.04 Скидки
Ошибка.
Попробуйте повторить позже
Магазин предоставляет оптовому покупателю скидку по следующим правилам:
– на каждый третий товар ценой больше 401 рубля предоставляется скидка 25%;
– общая цена покупки со скидкой округляется вверх до целого числа рублей;
– порядок товаров в списке определяет магазин и делает это так, чтобы общая сумма скидки была наименьшей.
Вам необходимо определить общую цену закупки с учетом скидки и цену самого дорогого товара, на который будет предоставлена скидка.
Входные данные. Первая строка входного файла 26_3.txt содержит число N – общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число – цену товара в рублях. В ответе запишите два целых числа: сначала общую цену покупки с учетом скидки, затем цену самого дорогого товара, на который предоставлена скидка.
Идея решения в том, чтобы на третьи места в чеке поставить максимально дешёвые товары. Для этого отсортируем цены по возрастанию и отберём из них те, на которые возможна скидка, то есть дороже 401 рубля.
На третье место в чеке можно поставить треть товаров, на которые может действовать скидка, отберём для этого самые дешёвые товары: они находятся в начале списка. Остальные товары возьмём без скидки. Последний товар из этой трети будет самым дорогим товаром, на который подействовала скидка.
# Для округления вверх from math import ceil # Считаем файл file = open("26_3.txt") n = int(file.readline()) # Отсортируем числа по возрастанию prices = sorted([int(i) for i in file]) # Список товаров по полной цене full_prices = [] # Список товаров, на которые возможна скидка maybe_discounted_prices = [] # Проходимся по товарам и определяем, может ли на них быть скидка for i in prices: if i < 402: full_prices.append(i) else: maybe_discounted_prices.append(i) # В итоговую сумму добавим все товары для которых скидка невозможна summ = sum(full_prices) # Количество товаров по скидке count_discounts = len(maybe_discounted_prices) // 3 # Самый дорогой товар, на который будет скидка max_discount = maybe_discounted_prices[count_discounts - 1] # Посчитаем товары со скидкой for i in range(count_discounts): summ += maybe_discounted_prices[i] * 0.75 # Посчитаем остальные товары без скидки for i in range(count_discounts, len(maybe_discounted_prices)): summ += maybe_discounted_prices[i] # Округляем сумму summ = ceil(summ) # Выводим ответ print(summ, max_discount)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!