Задача к ЕГЭ по информатике на тему «Скидки» №1

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

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

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

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

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

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

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

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

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

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

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

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

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

Далее считаем сумму с помощью формулы =CУММ(B:B;A1:A4815;A7058:A9301) и записываем последнее число, на которое вы применили формулу выше.

Решение 2 (Python)

file = open(’Задание_26.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] <= 130:
    current_sum += array[i]
    i += 1

t = i + (n - i) // 2 + (n % 2)
ans = current_sum + sum(array[t:]) + sum(array[i:t]) // 2 + sum(array[i:t]) % 2

print(ans, array[t - 1])

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