D. MEX-последовательности
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Назовем последовательность целых чисел $$$x_1, x_2, \dots, x_k$$$ MEX-правильной, если для любого $$$i$$$ ($$$1 \le i \le k$$$) выполняется $$$|x_i - \operatorname{MEX}(x_1, x_2, \dots, x_i)| \le 1$$$. Здесь $$$\operatorname{MEX}(x_1, \dots, x_k)$$$ — минимальное неотрицательное целое число, которое не принадлежит набору $$$x_1, \dots, x_k$$$. Например, $$$\operatorname{MEX}(1, 0, 1, 3) = 2$$$, а $$$\operatorname{MEX}(2, 1, 5) = 0$$$.

Вам задан массив $$$a$$$, состоящий из $$$n$$$ целых неотрицательных чисел. Найдите количество непустых МЕХ-правильных подпоследовательностей заданного массива. Количество подпоследовательностей может быть очень большим, поэтому выведите его по модулю $$$998244353$$$.

Примечание: подпоследовательность массива $$$a$$$ — это последовательность $$$[a_{i_1}, a_{i_2}, \dots, a_{i_m}]$$$, удовлетворяющая ограничениям $$$1 \le i_1 < i_2 < \dots < i_m \le n$$$. Если два разных способа выбрать последовательность индексов $$$[i_1, i_2, \dots, i_m]$$$ приводят к одной и той же подпоследовательности, ее следует считать дважды (т. е. две подпоследовательности различны, если различаются последовательности индексов $$$[i_1, i_2, \dots, i_m]$$$).

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

Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^5$$$) — количество наборов входных данных.

Первая строка каждого набора содержит одно целое число $$$n$$$ ($$$1 \le n \le 5 \cdot 10^5$$$).

Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$0 \le a_i \le n$$$).

Сумма $$$n$$$ по всем наборам входных данных не превосходит $$$5 \cdot 10^5$$$.

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

Для каждого набора входных данных выведите одно целое число — количество непустых МЕХ-правильных подпоследовательностей заданного массива, взятое по модулю $$$998244353$$$.

Пример
Входные данные
4
3
0 2 1
2
1 0
5
0 0 0 0 0
4
0 1 2 3
Выходные данные
4
2
31
7
Примечание

Подходящие подпоследовательности в первом примере: $$$[0]$$$, $$$[1]$$$, $$$[0,1]$$$ и $$$[0,2]$$$.

Подходящие подпоследовательности во втором примере: $$$[0]$$$ и $$$[1]$$$.

В третьем примере любая непустая подпоследовательность подходит.