Ctrl K

Отрезки ровно с k видами

Сложная
Дан массив целых чисел values и число kinds. Посчитайте, сколько существует непустых отрезков массива (подряд идущих элементов), в которых встречается **ровно** kinds различных значений. Отрезки, расположенные в разных местах массива, считаются разными, даже если состоят из одинаковых чисел.
Пример 1
values=[2, 1, 2, 3], kinds=2 → 4

Ровно два различных значения у отрезков [2, 1], [1, 2], [2, 3] и [2, 1, 2].

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

Любой из шести отрезков состоит из одних троек.

Пример 3
values=[1, 2, 1], kinds=3 → 0

В массиве всего два различных значения, трёх не набрать.

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

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