编程题
### 问题描述
小莫买了一块超级好吃的榛果黑巧克力,但看到分布不均匀的榛果,就很烦!
当然是每一段有一颗榛果才好吃嘛,于是小莫想把这块巧克力分成多段,这样每段都正好含有一颗榛果,而且任何断线都在相邻的两段之间。
假设这根黑巧克力有 $n$ 块,请你计算出有多少种方案。
当然,如果小莫不掰巧克力,则 $n$ 块巧克力则视为**一段**,仍然必须保持仅有**一颗**榛果。
如果整段巧克力连一颗榛果也没有,那显然方案数为 $0$ 。
### 输入格式
第一行包含一个整数 $n$ 巧克力的块数。
第二行包含 $n$ 个整数,其中 $0$ 代表没有榛果的一块,$1$ 代表有榛果的一块。
### 输出格式
一行输出 $1$ 个整数
### 样例输入
```text
5
1 0 1 0 1
```
### 样例输出
```text
4
```
### 说明
输出把巧克力分成多段,且每段仅包含一个巴旦木的方案数对 $998244353$ 取模后的结果。
例如,对于 $1 0 1 0 1$的巧克力,可以如下划分
- $10|10|1$
- $1|010|1$
- $10|1|01$
- $1|01|01$
一共为四种方案,对 $998244353$ 取模后仍然为 $4$ ,所以你应当输出 $4$ 。
### 评测数据规模
对于 $60$% 的评测数据,$1 \leq n \leq 20, 0 \leq a_i \leq 1$。
对于 $100$% 的评测数据,$1 \leq n \leq 1 \times 10^{5}, 0 \leq a_i \leq 1 $。