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

26.04 Скидки

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

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

Задача 1#29461

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

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

  • на каждый второй товар стоимостью больше 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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