| Атака на базу строителя (Этап 2) — Supercell, Clash of Clans |
Это counting версия задачи. Отличие между версиями заключается в том, что в этой версии вам нужно подсчитать количество массивов, где $$$0 \leq b_i \leq n$$$. Вы можете делать взломы только в том случае, если решили все версии этой задачи.
Мастер-строитель не любит повторяющиеся задачи — ремонт базы, улучшение ратуши пятнадцать раз и решение еще большего количества задач по MEX. Поэтому это не будет вашей обычной задачей по MEX.
Для любого положительного целого числа $$$k$$$ определите $$$k$$$-mex коллекции целых чисел $$$S$$$ как $$$k$$$-е по величине неотрицательное целое число, отсутствующее в $$$S$$$. Например, $$$1$$$-mex и $$$2$$$-mex для $$$[1, 2, 1]$$$ равны $$$0$$$ и $$$3$$$ соответственно.
Пусть $$$n$$$ будет положительным целым числом, и рассмотрим массив неотрицательных целых чисел $$$[a_1, \ldots, a_n]$$$. Вычислите количество массивов неотрицательных целых чисел $$$[b_1, \ldots, b_n]$$$, таких что:
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора содержит одно целое число $$$n$$$ ($$$1 \leq n \leq 2 \cdot 10^5$$$) — длина массива $$$a$$$.
Вторая строка каждого набора содержит $$$n$$$ целых чисел $$$a_1, \ldots, a_n$$$ ($$$0 \leq a_i \leq 10^9$$$).
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора выведите одно целое число — количество удовлетворяющих массивов $$$b$$$ по модулю $$$10^9 + 7$$$.
633 3 132 1 3101247 5 2 266 6 6 4 3 3
60100360
В первом наборе массив $$$a = [3, 3, 1]$$$. Существует ровно шесть таких массивов $$$b$$$, которые подходят. Один из таких примеров — массив $$$b = [2, 0, 2]$$$, который удовлетворяет условиям, потому что:
Во втором наборе массив $$$a = [2, 1, 3]$$$. Можно показать, что подходящего массива $$$b$$$ не существует.