yyy loves Maths VII
题目背景
yyy 对某些数字有着情有独钟的喜爱,他叫他们为“幸运数字”;然而他作死太多,所以把自己讨厌的数字成为“厄运数字”。
题目描述
一群同学在和 yyy 玩一个游戏。
每次,他们会给 yyy $n$ 张卡片,卡片上有数字,所有的数字都是“幸运数字”,我们认为第 $i$ 张卡片上数字是 $a_{i}$。
每次 yyy 可以选择向前走 $a_{i}$ 步并且丢掉第 $i$ 张卡片。当他手上没有卡片的时候他就赢了。
但是呢,大家对“厄运数字”的位置布置下了陷阱,如果 yyy 停在这个格子上,那么他就输了。注意:**即使到了终点,但是这个位置是厄运数字,那么也输了。**
现在,有些同学开始问:yyy 有多大的概率会赢呢?
大家觉得这是个好问题,有人立即让 yyy 写个程序:“电脑运行速度很快!$24$ 的阶乘也不过就 $620\,448\,401\,733\,239\,439\,360\,000$,yyy 你快写个程序来算一算。”
yyy 表示很无语,他表示他不想算概率,最多算算赢的方案数,而且是对 $10^9+7$ 取模后的值。
大家都不会写程序,只好妥协。
但是这时候 yyy 为难了,$24!$ 太大了,要跑好长时间。
他时间严重不够!需要你的帮助!
某个数字可能既属于幸运数字又属于厄运数字。
输入输出格式
输入格式
第一行一个整数 $n$。
下面一行 $n$ 个整数,第 $i$ 个整数代表第 $i$ 张卡片上的数字 $a_i$。
第三行 $m$ 表示 yyy 的厄运数字个数(最多 $2$ 个)。
若 $m>0$,第四行 $m$ 个数 $b_i$ 代表所有的厄运数字。
输出格式
输出胜利方案数对 $10^9+7$ 取模的结果。
输入输出样例
输入样例 #1
8
1 3 1 5 2 2 2 3
0
输出样例 #1
40320
输入样例 #2
24
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2
10 15
输出样例 #2
0
说明
- $10\%$ 的数据 $n \leq 10$;
- $50\%$ 的数据 $n \leq 23$;
- $100\%$ 的数据 $n \leq 24$,$0\le m\le 2$,$1\le a_i,b_i\le 10^9$。