Тема 26. Обработка целочисленной информации с использованием сортировки

26.04 Скидки

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела обработка целочисленной информации с использованием сортировки
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#60740

Продавец предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:

— на каждый второй товар стоимостью больше 70 рублей предоставляется скидка 30%;

— общая стоимость покупки со скидкой округляется вверх до целого числа рублей;

— порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей;

По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и стоимость самого дорогого товара, на который будет предоставлена скидки.

Входные данные

Первая строка входного файла содержит число N — общее количество купленных товаров. Каждая из последующих N строк содержит одно целое число — стоимость товара в рублях.

В ответе запишите два целых числа через пробел: сначала общую стоимость покупки с учётом скидки, затем стоимость самого дорогого товара, на который будет предоставлена скидка.

Вложения к задаче
Показать ответ и решение

Решение электронными таблицами

Открываем Excel, заходим в «Открыть» и выбираем текстовый документ из задачи. В вышедшем окне в первом пункте выбираем формат данных с разделителями. Во втором пункте помимо знака табуляции выбираем пробел. Формат данных столбца общий.

Перетаскиваем числа из первой строки в бок, чтобы не мешались. Пустую первую строку убираем(ПКМ на номер строки — удалить). Выделяем столбец с числами, нажимаем на «Сортировка и фильтр»(раздел «Главная» справа), выбираем сортировку по возрастанию.

Товаров, которые дешевле 70 рублей, либо стоят 70 рублей, здесь 1114. 7890-1114=6776 — количество товаров дороже 70 рублей, выделяем первую половину из них и применяем скидку. Начиная с A1115 до A4502 включительно, применяем формулу по типу =A1115*0,7 в соседнем столбце. Изначальная стоимость последнего товара, на который применили скидку — 284, это пойдёт в ответ вторым числом.

Считаем сумму: =СУММ(A1:A1114)+СУММ(B1115:B4502)+СУММ(A4503:A7890). С округлением в большую сторону, выходит 1784848.

Решение программой

Чтобы минимизировать скидку, нужно на вторые позиции в чеке поставить максимально дешёвые товары. Для этого отсортируем товары по возрастанию цены и отберём половину самых дешёвых товаров со стоимостью больше 70 рублей — их мы как раз и поставим на вторые позиции, добившись минимальной скидки.

from math import ceil

# Открываем файл
file = open("26.txt")

# Kоличество купленных товаров
n = int(file.readline())

# Сортировка всех цен по возрастанию
prices = sorted([int(i) for i in file])

# Товары дешевле 70 р, скидка не положена
full_prices = [i for i in prices if i <= 70]

# Остальные товары, дороже 70р, на них может быть скидка
maybe_discounted_prices = prices[len(full_prices):]

# Товары, на которые будет действовать скидка
discounted_prices = maybe_discounted_prices[:len(
    maybe_discounted_prices) // 2]

# Tовары, дороже 70р, на которые не будет скидки
not_discounted_prices = maybe_discounted_prices[len(
    maybe_discounted_prices) // 2:]

# Сумма стоимость всех товаров
print(ceil(sum(not_discounted_prices + full_prices) + sum(discounted_prices) * 0.7))

# Самый дорогой товар, на который предоставлена скидка
print(discounted_prices[-1])

Ответ: 1784848 284

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное онлайн-обучение

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!