codeforces#P1067A. Array Without Local Maximums
Array Without Local Maximums
Description
Ivan unexpectedly saw a present from one of his previous birthdays. It is array of $n$ numbers from $1$ to $200$. Array is old and some numbers are hard to read. Ivan remembers that for all elements at least one of its neighbours ls not less than it, more formally:
$a_{1} \le a_{2}$,
$a_{n} \le a_{n-1}$ and
$a_{i} \le max(a_{i-1}, \,\, a_{i+1})$ for all $i$ from $2$ to $n-1$.
Ivan does not remember the array and asks to find the number of ways to restore it. Restored elements also should be integers from $1$ to $200$. Since the number of ways can be big, print it modulo $998244353$.
First line of input contains one integer $n$ ($2 \le n \le 10^{5}$) — size of the array.
Second line of input contains $n$ integers $a_{i}$ — elements of array. Either $a_{i} = -1$ or $1 \le a_{i} \le 200$. $a_{i} = -1$ means that $i$-th element can't be read.
Print number of ways to restore the array modulo $998244353$.
Input
First line of input contains one integer $n$ ($2 \le n \le 10^{5}$) — size of the array.
Second line of input contains $n$ integers $a_{i}$ — elements of array. Either $a_{i} = -1$ or $1 \le a_{i} \le 200$. $a_{i} = -1$ means that $i$-th element can't be read.
Output
Print number of ways to restore the array modulo $998244353$.
Samples
3
1 -1 2
1
2
-1 -1
200
Note
In the first example, only possible value of $a_{2}$ is $2$.
In the second example, $a_{1} = a_{2}$ so there are $200$ different values because all restored elements should be integers between $1$ and $200$.