Задание выполняется с использованием прилагаемых файлов
Хитрый продавец Алекс Вокятов предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:
- на каждый второй товар стоимостью больше
рублей предоставляется скидка
;
- общая стоимость покупки со скидкой округляется вверх до целого числа рублей;
- порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.
По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и стоимость самого дорогого товара, на который будет предоставлена скидки
Входные данные
Первая строка входного файла содержит число — общее количество купленных товаров. Каждая из последующих
строк содержит одно целое число — стоимость товара в рублях.
Выходные данные
В ответе запишите два целых числа через пробел: сначала общую стоимость покупки с учётом скидки, затем стоимость самого дорогого товара, на который будет предоставлена скидка.
Решение 1 ( Excel / LibreOffice):
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Верхнее число — это кол-во чисел, переносим его отдельно и стоимости товаров поднимаем на ячейку выше.
Сортируем числа по возрастанию.
Находим первое число, большее , т.е.
и считаем, сколько осталось чисел. Их осталось
, значит, на
товара будет применена скидка. Так как это должно быть выгодно продавцу, значит, скидка предоставляется на первые, самые дешевые,
товара.
Вставляем формулу в соседние от необходимых нам ячеек: =A5133*0,75. Не забывайте, что кол-во товаров должно быть .
Далее считаем сумму с помощью формулы =СУММ(A1:A5132;B:B;A7567:A10000) и записываем последнее число, на которое мы применили формулу выше.
Решение 2 (Python)
from math import ceil
file = open(’Задание_26__y22n.txt’)
lines = file.readlines()
n = int(lines[0])
array = list(map(int, lines[1:]))
array = sorted(array)
i = 0
current_sum = 0
last_elem = 0
ind_last = 0
users_count = 0
while array[i] <= 240:
current_sum += array[i]
i += 1
t = i + (n - i) // 2 + (n % 2)
ans = current_sum + sum(array[t:]) + sum(array[i:t]) * 0.75
print(ceil(ans), array[t - 1])
# ceil - дает округление числа вверх.