codeforces#P1783D. Different Arrays

Different Arrays

Description

You are given an array $a$ consisting of $n$ integers.

You have to perform the sequence of $n-2$ operations on this array:

  • during the first operation, you either add $a_2$ to $a_1$ and subtract $a_2$ from $a_3$, or add $a_2$ to $a_3$ and subtract $a_2$ from $a_1$;
  • during the second operation, you either add $a_3$ to $a_2$ and subtract $a_3$ from $a_4$, or add $a_3$ to $a_4$ and subtract $a_3$ from $a_2$;
  • ...
  • during the last operation, you either add $a_{n-1}$ to $a_{n-2}$ and subtract $a_{n-1}$ from $a_n$, or add $a_{n-1}$ to $a_n$ and subtract $a_{n-1}$ from $a_{n-2}$.

So, during the $i$-th operation, you add the value of $a_{i+1}$ to one of its neighbors, and subtract it from the other neighbor.

For example, if you have the array $[1, 2, 3, 4, 5]$, one of the possible sequences of operations is:

  • subtract $2$ from $a_3$ and add it to $a_1$, so the array becomes $[3, 2, 1, 4, 5]$;
  • subtract $1$ from $a_2$ and add it to $a_4$, so the array becomes $[3, 1, 1, 5, 5]$;
  • subtract $5$ from $a_3$ and add it to $a_5$, so the array becomes $[3, 1, -4, 5, 10]$.

So, the resulting array is $[3, 1, -4, 5, 10]$.

An array is reachable if it can be obtained by performing the aforementioned sequence of operations on $a$. You have to calculate the number of reachable arrays, and print it modulo $998244353$.

The first line contains one integer $n$ ($3 \le n \le 300$).

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 300$).

Print one integer — the number of reachable arrays. Since the answer can be very large, print its remainder modulo $998244353$.

Input

The first line contains one integer $n$ ($3 \le n \le 300$).

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 300$).

Output

Print one integer — the number of reachable arrays. Since the answer can be very large, print its remainder modulo $998244353$.

4
1 1 1 1
5
1 2 3 5 0
3
7