| Vorg CUP, Финал, 2025-2026 |
|---|
| Закончено |
Во времена Великого Ангуса, когда в королевстве «Бургер Кинг» ещё только складывались древние рецепты, каждый элемент массива считался отдельным ингредиентом для священного бургера. Число $$$a_i$$$ означало, какой именно ингредиент лежит на $$$i$$$-й полке королевской кладовой, всего полок было $$$n$$$.
Но в день Великого Ангусения жрецам было поручено необычное дело. Из отрезка кладовой с $$$l$$$-й по $$$r$$$-ю полку нужно было собрать ровно $$$k$$$ корзин ингредиентов, причём:
Здесь $$$\operatorname{MEX}$$$ — это наименьшее неотрицательное число, которого нет в выбранной корзине: именно оно считалось номером недостающего ингредиента в великом рецепте Ангуса.
Жрецы «Бургер Кинга» верили: если на отрезке кладовой посчитать количество способов собрать таким образом корзины, то в этот день Ангус будет особенно сочным, а королевство — сытым и довольным.
Так и поступают мудрецы: для каждого запроса с границами отрезка $$$[l, r]$$$ и числом $$$x$$$ они считают, сколькими способами можно выбрать множество из $$$k$$$ попарно непересекающихся подпоследовательностей $$$a_l, a_{l+1}, \ldots, a_r$$$ так, чтобы каждая подпоследовательность имела $$$\operatorname{MEX}$$$ равный $$$x$$$.
Обратите внимание, что две подпоследовательности считаются различными, если они состоят из элементов с различными индексами в массиве $$$a$$$. Например, в массиве $$$a = [0, 0, 0]$$$ на отрезке $$$[1,3]$$$ существует $$$7$$$ непустых подпоследовательностей с $$$\operatorname{MEX}$$$ равным $$$1$$$.
Вам предстоит выступить в роли мудреца и посчитать количество таких способов. Так как их может быть очень много, достаточно вывести ответы по модулю $$$10^9 + 7$$$.
В первой строке заданы три целых числа $$$n$$$, $$$q$$$ и $$$k$$$ ($$$1 \le n, q \le 100\,000$$$, $$$1 \le k \le \min{(n, 1000)}$$$) — количество полок, количество запросов и количество корзин соответственно.
Во второй строке заданы $$$n$$$ целых чисел $$$a_i$$$ ($$$0 \le a_i \le n$$$) — ингредиенты на полках.
Каждая из следующих $$$q$$$ строк содержит описание одного запроса. В ней заданы три целых числа $$$l_i$$$, $$$r_i$$$ и $$$x_i$$$ ($$$1 \le l_i \le r_i \le n$$$, $$$1 \le x_i \le n$$$) — границы отрезка и требуемое значение $$$\operatorname{MEX}$$$ соответственно.
Выведите $$$q$$$ строк, в каждой из которых должно находиться одно число — ответ на соответствующий запрос по модулю $$$10^9 + 7$$$.
Тесты к этой задаче состоят из восьми групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп. Обратите внимание, что прохождение тестов из условия не требуется для некоторых групп. Итоговый балл за каждую группу равняется максимальному баллу, полученному за эту группу тестов по всем отправленным посылкам.
| Подзадача | Баллы | $$$n$$$ | Дополнительно | Необх. подзадачи |
| 1 | 7 | $$$n \le 8$$$ | — | У |
| 2 | 4 | — | $$$k = n$$$ | — |
| 3 | 12 | — | $$$a_i = 0$$$ | — |
| 4 | 13 | $$$n \le 3\,000$$$ | $$$k = 1$$$ | — |
| 5 | 14 | $$$n \le 3\,000$$$ | — | У, 1, 4 |
| 6 | 16 | — | $$$k = 1$$$ | 4 |
| 7 | 13 | — | $$$l_i = 1$$$, $$$r_i = n$$$ | — |
| 8 | 21 | — | — | У, 1–7 |
3 2 20 1 01 3 12 3 2
1 0
6 3 10 1 2 3 4 53 6 11 4 21 6 6
0 2 1
8 8 20 1 2 0 0 1 2 11 6 14 5 14 4 12 5 21 8 31 8 21 8 14 7 2
18 1 0 0 144 72 54 0
| Название |
|---|


