Вопрос задан 26.10.2026 в 18:38.
Предмет Информатика.
Спрашивает Пономарев Сергей.
B. Цена за мороженое
Ограничение по времени на тест: 1 секунда
Ограничение по памяти на тест: 256 мегабайт
Ввод: стандартный ввод
Вывод: стандартный вывод
Вы продаёте мороженое. Себестоимость одного мороженого k тенге. Это значит, что если вы продаёте одно мороженое по x тенге, то прибыль с одного мороженого будет x − k тенге.
Есть n клиентов, для каждого клиента i известна максимальная сумма денег sᵢ тенге, которую он готов потратить на мороженое. Каждый клиент купит столько мороженого, сколько сможет купить. Выберите цену мороженого таким образом, чтобы максимизировать суммарную прибыль.
Входные данные
В первой строке находятся два целых числа n, k (1 ≤ n ≤ 2⋅10⁵, 0 ≤ k ≤ 10⁶) — количество клиентов и себестоимость одного мороженого.
Во второй строке находятся n целых чисел s₁, s₂, ..., sₙ (1 ≤ sᵢ ≤ 10⁶).
Выходные данные
Выведите максимальную возможную прибыль.
В первом примере одно мороженое выгодно продавать по 7 тенге. Тогда четвёртый клиент купит 2 мороженых, а остальные 4 по одному. Всего продадим 6 мороженых. Прибыль с одного мороженого 5 (7 − 2) тенге, тогда суммарная прибыль 6 ⋅ 5 = 30 тенге.
Ответы на вопрос
Отвечает Надольский Тимур.
Для каждой возможной цены \(x\) нужно найти число купленных мороженых:
\[q(x)=\sum_{i=1}^{n}\left\lfloor\frac{s_i}{x}\right\rfloor.\]
Тогда прибыль равна:
\[P(x)=(x-k)\cdot q(x).\]
Проверять имеет смысл цены от \(k+1\) до наибольшего значения \(s_i\). Чтобы решение работало быстро, составляют массив частот сумм \(s_i\) и его префиксные суммы. Для каждой цены \(x\) клиентов группируют по отрезкам: от \(x\) до \(2x-1\), от \(2x\) до \(3x-1\) и так далее. На каждом отрезке все покупатели приобретают одинаковое число мороженых. Максимальное найденное значение \(P(x)\) и будет ответом.
Для хранения прибыли нужен тип \(Int64\), так как ответ может быть больше диапазона обычного целого типа.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

