#P2396. yyy loves Maths VII

yyy loves Maths VII

题目背景

yyy 对某些数字有着情有独钟的喜爱,他叫他们为“幸运数字”;然而他作死太多,所以把自己讨厌的数字成为“厄运数字”。

题目描述

一群同学在和 yyy 玩一个游戏。

每次,他们会给 yyy nn 张卡片,卡片上有数字,所有的数字都是“幸运数字”,我们认为第 ii 张卡片上数字是 aia_{i}

每次 yyy 可以选择向前走 aia_{i} 步并且丢掉第 ii 张卡片。当他手上没有卡片的时候他就赢了。

但是呢,大家对“厄运数字”的位置布置下了陷阱,如果 yyy 停在这个格子上,那么他就输了。注意:即使到了终点,但是这个位置是厄运数字,那么也输了。

现在,有些同学开始问:yyy 有多大的概率会赢呢?

大家觉得这是个好问题,有人立即让 yyy 写个程序:“电脑运行速度很快!2424 的阶乘也不过就 620448401733239439360000620\,448\,401\,733\,239\,439\,360\,000,yyy 你快写个程序来算一算。”

yyy 表示很无语,他表示他不想算概率,最多算算赢的方案数,而且是对 109+710^9+7 取模后的值。

大家都不会写程序,只好妥协。

但是这时候 yyy 为难了,24!24! 太大了,要跑好长时间。

他时间严重不够!需要你的帮助!

某个数字可能既属于幸运数字又属于厄运数字。

输入格式

第一行一个整数 nn

下面一行 nn 个整数,第 ii 个整数代表第 ii 张卡片上的数字 aia_i

第三行 mm 表示 yyy 的厄运数字个数(最多 22 个)。

m>0m>0,第四行 mm 个数 bib_i 代表所有的厄运数字。

输出格式

输出胜利方案数对 109+710^9+7 取模的结果。

8
1 3 1 5 2 2 2 3
0
40320
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

0

提示

  • 10%10\% 的数据 n10n \leq 10
  • 50%50\% 的数据 n23n \leq 23
  • 100%100\% 的数据 n24n \leq 240m20\le m\le 21ai,bi1091\le a_i,b_i\le 10^9