Задача к ЕГЭ по информатике на тему «Архив пользовательских файлов» №1

Задание выполняется с использованием прилагаемых файлов

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

  • на каждый второй товар стоимостью больше 240  рублей предоставляется скидка 25%  ;
  • общая стоимость покупки со скидкой округляется вверх до целого числа рублей;
  • порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.

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

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

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

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

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

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

Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Верхнее число — это кол-во чисел, переносим его отдельно и стоимости товаров поднимаем на ячейку выше.

Сортируем числа по возрастанию.

Находим первое число, большее 240  , т.е. 243  и считаем, сколько осталось чисел. Их осталось 4868  , значит, на    2434  товара будет применена скидка. Так как это должно быть выгодно продавцу, значит, скидка предоставляется на первые, самые дешевые, 2434  товара.

Вставляем формулу в соседние от необходимых нам ячеек: =A5133*0,75. Не забывайте, что кол-во товаров должно быть 2434  .

Далее считаем сумму с помощью формулы =СУММ(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 - дает округление числа вверх.

Ответ: 23606668 5152
Оцените статью
Я решу все!