Codeforces Round 971 (Div. 4) |
---|
Закончено |
Это сложная версия задачи. В этой версии гарантируется, что $$$r \geq l+k-1$$$ для всех запросов.
Для произвольного массива $$$b$$$ Юнли может выполнять следующую операцию любое количество раз:
Обозначим $$$f(b)$$$ как минимальное количество операций, которые ей нужно выполнить, чтобы в массиве $$$b$$$ существовал последовательный подмассив$$$^{\text{∗}}$$$ длиной не менее $$$k$$$.
Юнли дан массив $$$a$$$ размером $$$n$$$, и она задает вам $$$q$$$ запросов. В каждом запросе вы должны вывести $$$\sum_{j=l+k-1}^{r} f([a_l, a_{l+1}, \ldots, a_j])$$$.
$$$^{\text{∗}}$$$Если существует последовательный подмассив длиной $$$k$$$, который начинается с индекса $$$i$$$ ($$$1 \leq i \leq |b|-k+1$$$), то $$$b_j = b_{j-1} + 1$$$ для всех $$$i < j \leq i+k-1$$$.
Первая строка содержит $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных.
Первая строка каждого набора входных данных содержит три целых числа $$$n$$$, $$$k$$$ и $$$q$$$ ($$$1 \leq k \leq n \leq 2 \cdot 10^5$$$, $$$1 \leq q \leq 2 \cdot 10^5$$$) — длину массива, длину последовательного подмассива и количество запросов.
Следующая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, ..., a_n$$$ ($$$1 \leq a_i \leq n$$$).
Следующие $$$q$$$ строк содержат по два целых числа $$$l$$$ и $$$r$$$ ($$$1 \leq l \leq r \leq n$$$, $$$r \geq l+k-1$$$) — границы запроса.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$, а сумма $$$q$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.
Выведите $$$\sum_{j=l+k-1}^{r} f([a_l, a_{l+1}, \ldots, a_j])$$$ для каждого запроса на новой строке.
37 5 31 2 3 2 1 2 31 72 73 78 4 24 3 1 1 2 4 3 23 61 55 4 24 5 1 2 31 41 5
6 5 2 2 5 2 3
Во втором запросе первого набора входных данных мы вычисляем следующие значения функции:
Ответ на этот запрос равен $$$3+2=5$$$.
Название |
---|