Магазин предоставляет оптовому покупателю скидку по следующим правилам:
— на каждый второй товар ценой больше 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 в столбик . В столбике
найдем стоимость товаров после предоставления скидки (только на первую половину товаров, так как именно таким образом мы максимизируем прибыль нашего магазина). Суммируем стоимости товаров до 200 (включительно)(столбик
), стоимости товаров со скидкой (столбик
) и стоимости товаров больших 200, но без скидки
. Округляем полученное число вверх до целого. Найдем товар, который имеет макс. числовое значение и на который предоставляется скидка. Запишем ответ.
Решение 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)