Ctrl K

Отрезки с нужным остатком

Средняя
Дан массив values и два числа base и rest. Назовём элемент **отмеченным**, если он даёт остаток rest при делении на base, то есть values[i] % base == rest. Непрерывный непустой отрезок массива подходит, если количество отмеченных элементов в нём, cnt, тоже даёт остаток rest: cnt % base == rest. Верните количество подходящих отрезков.
Пример 1
values=[5, 8, 11], base=3, rest=2 → 2

Все три числа дают остаток 2 при делении на 3, так что отмечены все. Нужно, чтобы число отмеченных в отрезке давало остаток 2 при делении на 3, а в массиве из трёх элементов это значит ровно 2: подходят [5, 8] и [8, 11].

Пример 2
values=[4, 6, 9], base=2, rest=0 → 3

Чётные числа — 4 и 6. Подходят отрезки, где чётных 0 или 2: [9], [4, 6] и [4, 6, 9].

Пример 3
values=[7], base=1, rest=0 → 1
Ограничения
  • 1 ≤ len(values) ≤ 10⁵
  • 1 ≤ values[i] ≤ 10⁹
  • 1 ≤ base ≤ 10⁹
  • 0 ≤ rest < base
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный отрезок с заданной суммой СредняяОтрезок с суммой, кратной делителю СредняяПоровну орлов и решек СредняяОтрезки с заданной суммой СредняяОкна с заданным числом тревог Средняя
загружаем Python…
Вход
values=[5, 8, 11], base=3, rest=2
Ожидается
2

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