Ctrl K

Разломать до одиночек

Средняя
Дан массив values и число threshold. Назовём кусок массива *крепким*, если в нём один элемент или сумма его элементов не меньше threshold. За один шаг можно взять любой имеющийся кусок длиной не меньше 2 и разрезать его на два непрерывных куска — но только если оба получившихся куска крепкие. Изначально кусок один — весь массив. Верните True, если такими шагами можно дойти до состояния, когда каждый элемент — отдельный кусок, и False иначе.
Пример 1
values=[1, 4, 3, 1], threshold=7 → True

Отрезаем последнюю 1: [1, 4, 3] (сумма 8) и [1]. Потом первую 1: [1] и [4, 3] (сумма 7). Наконец [4, 3] → [4] и [3].

Пример 2
values=[3, 1, 3], threshold=5 → False

Первый разрез даёт либо [3, 1], либо [1, 3] — сумма 4 меньше 5, а длина больше 1, так что ни один разрез не разрешён.

Пример 3
values=[9, 2], threshold=200 → True
Ограничения
  • 1 ≤ len(values) ≤ 100
  • 1 ≤ values[i] ≤ 100
  • 1 ≤ threshold ≤ 200
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньше всего прыжков до конца СредняяДобраться до последней клетки СредняяСколько угодно сделок СредняяСамая длинная «качель» СредняяОтменить как можно меньше встреч Средняя
загружаем Python…
Вход
values=[1, 4, 3, 1], threshold=7
Ожидается
True

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