| Codeforces Round 1086 (Div. 2) |
|---|
| Закончено |
Пусть $$$[A_1, A_2, \ldots, A_n]$$$ — массив из $$$n$$$ целых положительных чисел. Определим массив $$$f(A)$$$ следующим образом:
Для каждого целого числа $$$i$$$ от $$$1$$$ до $$$n$$$:
Мы называем массив $$$[P_1,P_2,\ldots,P_n]$$$ из целых неотрицательных чисел милым массивом, если существует массив $$$A$$$, такой что $$$f(A)=P$$$.
Дан массив $$$X$$$ длины $$$n$$$, в котором для всех $$$i$$$ от $$$1$$$ до $$$n$$$ выполняется $$$-1\le X_i\le n$$$. Посчитайте количество милых массивов $$$X'$$$, образованных заменой $$$-1$$$ в $$$X$$$ на целые числа от $$$0$$$ до $$$n$$$. Поскольку число может быть очень большим, выведите его по модулю $$$998\,244\,353$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^3$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит целое число $$$n$$$ ($$$1\le n\le5000$$$), обозначающее длину $$$X$$$.
Вторая строка содержит $$$n$$$ целых чисел $$$X_1,X_2,\ldots,X_n$$$ ($$$-1\le X_i\le n$$$).
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$5000$$$.
Для каждого набора входных данных выведите одно целое число, обозначающее количество массивов $$$X'$$$, таких что $$$X'$$$ является милым массивом, по модулю $$$998\,244\,353$$$.
63-1 0 -14-1 -1 1 -15-1 -1 -1 -1 -14-1 0 2 341 1 2 340 0 0 1
2342100
Для первого набора входных данных только $$$[0,0,0]$$$ и $$$[0,0,2]$$$ являются милыми массивами среди всех возможных $$$X'$$$. $$$[0,0,0]$$$ — хороший милый массив, потому что $$$f([1,1,1])=[0,0,0]$$$, а $$$[0,0,2]$$$ — хороший массив, потому что $$$f([1,1,2])=[0,0,2]$$$.
Для второго набора входных данных только $$$[0,1,1,0]$$$, $$$[0,1,1,1]$$$ и $$$[0,1,1,3]$$$ являются милыми массивами среди всех возможных $$$X'$$$.
| Название |
|---|


