编程题
### 问题描述
小蓝平时最爱吃巧克力了,尤其是白巧克力。这天小蓝从家里拿出来了新买的坚果巧克力准备分给大家吃。
这个坚果巧克力里面的坚果特别美味,小蓝想要将这个巧克力分成若干份使得每一份里面都只含有一个坚果,
这样就有更多的小伙伴可以吃到坚果了。
现在该处一个长度为 $n$ 的数组 $a$ ,代表这个巧克力,如果 $a[i]=0$ 表示当前这个位置只有巧克力,
如果 $a[i]=1$ 表示当前这个位置既有巧克力又有坚果。我们需要把数组切为若干个部分,使得每一部分都只有一个 $1$ ,
请你帮小蓝计算出有多少种分法,答案对 $10^{9}+7$ 取模。
### 输入格式
第一行输入一个整数 $n$ ,代表数组的长度。
第二行输入 $n$ 个整数,代表 $a_1,a_2,a_3,...,a_n$ 。
### 输出格式
输出一行一个整数,代表分法的数目对 $10^{9}+7$ 取模的结果。
### 样例输入
```txt
5
0 1 0 0 1
```
### 样例输出
```txt
3
```
### 说明
对于样例,以为数组里有两个坚果,所以我们要把数组分为两部分,我们有三种分法。
分开后的数组有以下三种可能:
$[0,1],[0,0,1]$ ,$[0,1,0],[0,1]$ ,$[0,1,0,0],[1]$
我们可以将数组在两个 $1$ 中间分割成两部分,两个 $1$ 之间有三个空隙所以有三种分法。
### 评测数据规模
对于 $50$% 的评测数据 $1 \leq n \leq 10^{4} , 0 \leq a[i] \leq 1$ 。
对于 $100$% 的评测数据 $ 1 \leq n \leq 10^{6} , 0 \leq a[i] \leq 1 $ 。