配点 : 300 点
問題文
N 個の袋があります。
袋 i には Li 個のボールが入っていて、袋 i の j(1≤j≤Li) 番目のボールには正の整数 ai,j が書かれています。
それぞれの袋から 1 つずつボールを取り出します。
取り出したボールに書かれた数の総積が X になるような取り出し方は何通りありますか?
ただし、書かれた数が同じであっても全てのボールは区別します。
制約
- N≥2
- Li≥2
- 袋に入っているボールの個数の総積は 105 を超えない。すなわち、i=1∏NLi≤105
- 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
出力
答えを出力せよ。
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 です。
3 200
3 10 10 10
3 10 10 10
5 2 2 2 2 2
45
書かれた数が同じであっても全てのボールは区別することに注意してください。
3 1000000000000000000
2 1000000000 1000000000
2 1000000000 1000000000
2 1000000000 1000000000
0
総積が X になる取り出し方が 1 つも存在しないこともあります。