Ctrl K

Очки за шаги

Лёгкая
Фитнес-приложение знает, сколько шагов человек сделал в каждый день: steps[i] — для дня i. Оно оценивает каждый отрезок из days дней подряд (все такие отрезки, они перекрываются) по сумме шагов T за отрезок: - если T < low, человек теряет 1 очко; - если T > high, получает 1 очко; - иначе счёт не меняется. Сначала у человека 0 очков. Верните итоговый счёт — он может быть отрицательным.
Пример 1
steps=[4, 9, 2, 8], days=2, low=10, high=12 → 1

Окна по два дня: 4 + 9 = 13 > 12 даёт +1, 9 + 2 = 11 — в норме, 2 + 8 = 10 — тоже в норме (границы включены). Итого 1.

Пример 2
steps=[1, 0, 3], days=1, low=2, high=5 → -2

Каждый день отдельно: 1 и 0 меньше 2 (−2), 3 в норме. Итого −2.

Пример 3
steps=[5, 5, 5], days=3, low=15, high=15 → 0
Ограничения
  • 1 ≤ days ≤ len(steps) ≤ 10⁵
  • 0 ≤ steps[i] ≤ 20 000
  • 0 ≤ low ≤ high ≤ 2·10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПовтор в пределах окна ЛёгкаяСоседние значения ЛёгкаяЛучшее окно по среднему ЛёгкаяСуммы соседей по кругу ЛёгкаяСамая ровная группа по баллам Лёгкая
загружаем Python…
Вход
steps=[4, 9, 2, 8], days=2, low=10, high=12
Ожидается
1

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