Ctrl K

Партии по две или по три

Средняя
На участке закалки лежат детали, levels[i] — режим, который нужен i-й детали. Печь за один запуск обрабатывает партию ровно из двух или ровно из трёх деталей, и все детали в партии должны иметь одинаковый режим. Верните наименьшее число запусков, за которое можно обработать все детали. Если это невозможно, верните -1.
Пример 1
levels=[5, 1, 5, 1, 5, 1, 1] → 3

Три детали уровня 5 — одна партия, четыре детали уровня 1 — две партии по две. Итого 3.

Пример 2
levels=[8, 8, 3] → -1

Деталь уровня 3 одна, а партия — минимум две детали. Обработать её нельзя.

Пример 3
levels=[2, 2, 2, 2, 2, 2, 2] → 3

Семь деталей: 3 + 2 + 2, три партии.

Ограничения
  • 1 ≤ len(levels) ≤ 10⁵
  • 1 ≤ levels[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗадания с перерывом на остывание СредняяМетки вразнобой СредняяВыбор с лимитом по тегам СредняяМеньше видов после удаления СредняяУравнять суммы на кубиках Средняя
загружаем Python…
Вход
levels=[5, 1, 5, 1, 5, 1, 1]
Ожидается
3

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