Ctrl K

Почтовые марки подряд

Средняя
У вас есть набор почтовых марок, номиналы записаны в массиве stamps; одинаковых марок может быть несколько. Сумму x можно наклеить, если найдётся набор марок (каждая марка используется не больше одного раза) с суммой номиналов ровно x. Сумма 0 наклеивается всегда — пустым набором. Верните, сколько сумм подряд, начиная с 0, можно наклеить: то есть наибольшее k, при котором доступны все суммы 0, 1, …, k - 1.
Пример 1
stamps=[1, 2, 6] → 4

Суммы 0, 1, 2 и 3 собираются (0 — без марок, 3 = 1 + 2), а 4 уже нет. Ответ 4.

Пример 2
stamps=[3, 1, 1] → 6

Собираются все суммы от 0 до 5: например, 4 = 3 + 1, 5 = 3 + 1 + 1. Это 6 значений.

Пример 3
stamps=[2] → 1

Сумма 1 недостижима, так что подряд идёт только 0.

Ограничения
  • 1 ≤ len(stamps) ≤ 4 · 10⁴
  • 1 ≤ stamps[i] ≤ 4 · 10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяСтудии для записи СредняяНизко — высоко — низко СредняяСтрого низко — высоко СредняяОтменить как можно меньше встреч Средняя
загружаем Python…
Вход
stamps=[1, 2, 6]
Ожидается
4

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