问题描述
小方(275307894a)是一名国家集训队队员,他一直有很多疑惑。
这天,小 L 送给他了一个长度为 n 的非负整数序列 a 和一个长度为 n−1 的正整数序列 b(下标均从 1 开始),其中序列 b 满足 1≤bi≤i。
小方可以执行如下操作若干次:
- 选择一个 i(1≤i<n) 满足 abi>0,将 abi 减去 1,将 ai+1 增加 1。
小方很疑惑有多少种本质不同的序列 a 可以被生成,可他想了很久却想不到一个优秀的做法,请你帮帮他。
由于答案很大,所以要对 109+7 取模。
输入格式
第一行一个正整数 n。
第二行 n−1 个正整数 b1,b2,⋯,bn−1。
第三行 n 个非负整数 a1,a2,⋯,an。
输出格式
一行一个数,表示最终的答案。
输入样例1
4
1 1 2
1 1 1 0
输出样例1
7
样例 1 解释
可以被生成的序列 a 的为:[1,1,1,0],[1,0,1,1],[0,1,2,0],[0,0,2,1],[0,2,1,0],[0,1,1,1],[0,0,1,2]。
输入样例2
6
1 1 2 2 3
1 1 4 5 1 4
输出样例2
63
数据范围
对于所有数据,保证 0≤ai≤109。
| 测试点编号 |
n= |
特殊性质 |
| 1 |
5 |
A |
| 2,3 |
无 |
| 4,5 |
100 |
| 6,7 |
500 |
A |
| 8∼10 |
无 |
| 11∼13 |
8×103 |
A |
| 14∼16 |
B |
| 17∼25 |
无 |
特殊性质 A:对于任意 1≤i≤n 均满足 ai=1。
特殊性质 B:对于任意 2≤i≤n 均满足 bi=⌊2i+1⌋。