Ctrl K

Два купил — третий в подарок

Лёгкая
В книжном магазине акция: купив две книги, можно взять третью бесплатно. Бесплатная книга должна стоить не больше, чем **более дешёвая** из двух купленных. Дан массив prices — цены книг, которые покупатель хочет унести. Каждая книга либо покупается, либо достаётся по акции, причём по одной купленной паре можно получить не больше одной бесплатной книги. Верните наименьшую сумму, которую придётся заплатить за все книги.
Пример 1
prices=[4, 8, 3, 7, 2] → 20

Покупаем 8 и 7, бесплатно берём 4. Затем покупаем 3 и 2 — третьего товара для подарка уже нет. Итого 8 + 7 + 3 + 2 = 20.

Пример 2
prices=[5, 5, 5, 5, 5, 5] → 20

Две тройки товаров: в каждой платим за два, итого 4 × 5 = 20.

Пример 3
prices=[9] → 9
Ограничения
  • 1 ≤ len(prices) ≤ 100
  • 1 ≤ prices[i] ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКуски торта для гостей ЛёгкаяСила слабейшего в паре ЛёгкаяТреугольник из палочек ЛёгкаяСмены знака ради большей суммы ЛёгкаяСобрать рюкзак Лёгкая
загружаем Python…
Вход
prices=[4, 8, 3, 7, 2]
Ожидается
20

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 87 тестов на сервере, включая скрытые.