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

26.04 Скидки

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

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

Задача 1#30259

Магазин предоставляет оптовому покупателю скидку по следующим правилам:
- на каждый второй товар ценой больше 200 рублей предоставляется скидка 30%;
- общая цена покупки со скидкой округляется вверх до целого числа рублей;
- порядок товаров в списке определяет магазин и делает это так, чтобы общая сумма скидки была наименьшей.
Вам необходимо определить общую цену закупки с учётом скидки и цену самого дорогого товара, на который будет предоставлена скидка.

Входные данные. Первая строка входного файла 4.txt содержит число N – общее количество купленных товаров. Каждая из следующих N строк содержит одно целое число – цену товара в рублях. В ответе запишите два целых числа: сначала общую цену покупки с учётом скидки, затем цену самого дорогого товара, на который предоставлена скидка. Пример входного файла
7
225
260
380
95
192
310
60
В данном случае товары с ценой 60, 95, 192 не участвуют в определении скидки, остальные товары магазину выгодно расположить в таком порядке цен: 380, 225, 310, 260. Скидка предоставляется на товары ценой 225 и 260. Суммарная цена этих двух товаров со скидкой составит 339,5 руб., после округления – 340 руб. Общая цена покупки составит: 60 + 95 + 340 + 380 + 192 + 310 = 1377 руб. Самый дорогой товар, на который будет получена скидка, стоит 260 руб. В ответе нужно записать числа 1377 и 260.

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

Решение 1 ( Excel / LibreOffice):

Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Перенесем числовое значение количества купленных товаров, где оно нам не помешает. Сортируем числа по возрастанию. Перенесем все числа, большие 200 в столбик B  . В столбике C  найдем стоимость товаров после предоставления скидки (только на первую половину товаров, так как именно таким образом мы максимизируем прибыль нашего магазина). Суммируем стоимости товаров до 200 (включительно)(столбик A  ), стоимости товаров со скидкой (столбик C  ) и стоимости товаров больших 200, но без скидки (B411 : B821)  . Округляем полученное число вверх до целого. Найдем товар, который имеет макс. числовое значение и на который предоставляется скидка. Запишем ответ.

Решение 2 (Python):

file = open("4.txt")

n = int(file.readline())
array = [int(file.readline()) for _ in range(n)]
array = sorted(array)

i = 0
summ = 0
max_wd = 0

while array[i] <= 200:
    summ += array[i]
    i += 1

t = (n - i) // 2

while t > 0:
    summ += array[i] * 0.7
    max_wd = array[i]
    i += 1
    t -= 1

if summ + sum(array[i:]) % 1 != 0:
    print(int(summ + sum(array[i:])) + 1, max_wd)
else:
    print(int(summ + sum(array[i:])), max_wd)

Ответ: 464632 602

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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