该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
时间限制:2 sec
空间限制:1024 MB
题目描述
我们有 N 个袋子。
袋子 i 包含 Li 个球。第 j 个球上写有一个正整数 ai,j。
我们将从每个袋子中各取出一个球,然后计算所有球上写的数字的乘积。
有多少种不同的方式可以使得所取出球上的数字乘积等于 X?
这里,我们区分所有球,即使它们上面写的数字相同。
约束条件
- 1≤N≤20
- 1≤Li≤105
- 你取完球之后,所有球的乘积不会超过 1018 :
- ∏i=1NLi≤106
(人话:所有袋子的球的数量的乘积不会超过 106 ,也就是取球的方式不会超过 106 ,假如有三个袋子分别装有x/y/z个球,保证 x×y×z≤106 )
- 1≤ai,j≤109
- 1≤X≤1018
- 所有输入值均为整数
输入格式
输入按以下格式从标准输入给出:
N X
L1 a1,1 a1,2 ⋯ a1,L1
L2 a2,1 a2,2 ⋯ a2,L2
⋮
LN aN,1 aN,2 ⋯ aN,LN
输出格式
输出答案。
样例
样例1
2 40
3 1 8 4
2 10 5
2
当选择袋子1中的第3个球和袋子2中的第1个球时,我们有 a1,3 × a2,1 = 4 × 10 = 40。
当选择袋子1中的第2个球和袋子2中的第2个球时,我们有 a1,2 × a2,2 = 8 × 5 = 40。
没有其他方式可以得到乘积 40,所以答案是 2。
样例2
3 200
3 10 10 10
3 10 10 10
3 10 10 10
0
注意:我们区分所有球,即使它们上面写的数字相同。
样例3
3 1000000000000000000
2 1000000000 1000000000
2 1000000000 1000000000
2 1000000000 1000000000
0
可能没有方式可以得到乘积 X。