← К списку задач

Покупка подписок на сериалы

Сложность: 37%

Канал BerTV каждый день показывает один эпизод одного из kk сериалов. Вам известно расписание на ближайшие nn дней: последовательность целых чисел a1,a2,,ana_1, a_2, \dots, a_n, где aia_i — номер сериала, эпизод которого будет показан в ii-й день.

Подписка на сериалы покупается целиком полностью на весь сериал, на каждый сериал подписка покупается отдельно.

Сколько минимум подписок надо купить, чтобы была возможность d (1dn)d\ (1 \le d \le n) дней подряд смотреть эпизоды купленных по подписке сериалов? Иными словами, вы хотите купить минимальное количество сериалов, чтобы существовал некоторый отрезок из dd подряд идущих дней, в котором все эпизоды из сериалов по приобретённым подпискам.

Входные данные

В первой строке записано целое число tt (1t100001 \le t \le 10000) — количество наборов входных данных в тесте. Далее следуют описания tt наборов входных данных.

Первая строка каждого из наборов содержит три целых числа n,kn, k и dd (1n2105,1k106,1dn1 \le n \le 2 \cdot 10^5, 1 \le k \le 10^6, 1 \le d \le n). Вторая строка содержит nn целых чисел a1,a2,,ana_1,a_2,…,a_n (1aik1 \le a_i \le k), где aia_i — это номер сериала, который показывается в ii-й день.

Гарантируется, что сумма значений nn по всем наборам входных данных в тесте не превосходит 21052 \cdot 10^5.

Выходные данные

Выведите tt целых чисел — ответы на заданные наборы входных данных в порядке их следования в тесте. Ответом на набор входных данных является минимальное количество сериалов, подписку на которые надо приобрести, чтобы была возможность dd дней подряд смотреть по BerTV эпизодов приобретённого сериала.

Подзадачи

баллынеобх. подзадачиограничения
1

50

-

t,n,k100t, \sum n, k \leq 100

2

50

1

Нет дополнительных ограничений

STDINSTDOUT
4
5 2 2
1 2 1 2 1
9 3 3
3 3 3 2 2 2 1 1 1
4 10 4
10 8 6 4
13 9 8
3 1 4 1 5 9 2 6 5 3 5 8 9
2
1
4
6