Привет! Классная задача для подготовки к ЕГЭ по информатике. Ты пока не дал ответ, давай подскажу как решить и на что обратить внимание.
Ключевая идея
- В первой акции 13% самых дешевых товаров получают скидку 69%, остальные — 75%.
- В второй акции 54% самых дешевых товаров получают скидку 55%, остальные — 77%.
- Нужно сравнить прибыли (выручку с учётом скидок), а прибыль двух акций различна (условие задачи).
- В конце выведем разницу в прибылях и стоимость самого дорогого товара, реализованного при выбранной акции.
Пошаговая подсказка (как посчитать)
- Считать входные данные:
- N — количество товаров.
- список цен цен (целые числа).
Отсортировать цены по возрастанию: a[0] ≤ a[1] ≤ ... ≤ a[N-1].
Найти количество товаров в группе самых дешевых:
- k1 = floor(N * 13 / 100)
- k2 = floor(N * 54 / 100)
- Вычислить выручку (прибыли) для каждой акции:
- Первая акция: s1 = 0.31 * sum(a[0..k1-1]) + 0.25 * sum(a[k1..N-1])
- Вторая акция: s2 = 0.45 * sum(a[0..k2-1]) + 0.23 * sum(a[k2..N-1])
Разница в прибылях: diff = |s1 - s2|. В форме задания требуют целую часть, т.е. floor(diff).
Стоимость самого дорогого товара, реализованного при выбранной акции:
- Поскольку самый дорогой товар всегда попадает в «остальные товары» и получает скидку, но формулировка требует именно стоимость самого дорогого товара (оригинальная цена), ответ — a[N-1] (максимальная цена в списке).
- Вывод:
- Первое число: целая часть разницы (floor).
- Второе число: максимальная цена товара (a[N-1]).
Полезная подстраховка (чуть более надёжно с точностью):
- Чтобы не гадать с точностью плавающей точки, можно посчитать в целых числах, например так:
- s1_scaled = sum(a[0..k1-1]) * 31 + sum(a[k1..N-1]) * 25
- s2_scaled = sum(a[0..k2-1]) * 45 + sum(a[k2..N-1]) * 23
- diff = abs(s1_scaled - s2_scaled) // 100 Это эквивалентно floor(|s1 - s2|).
Что важно проверить в твоём решении
- Второй вывод должен быть не скидочной ценой самого дорогого товара, а самой дорогой ценой товара (то есть max цены). В примере ответа это 229, а не 0.25*229.
- Прибыль считаем именно как сумма продаж после скидок, т.е. суммы цен умноженные на соответствующую долю оплаты (или эквивалентно 0.31 и 0.25 и т.д.).
- Разница оперируется как неотрицательная величина (abs).
Если хочешь, могу проверить твою логику на примере или помочь переписать решение на Python пошагово. Оценить мой ответ лайком или дизлайком, пожалуйста.