atcoder#ABC182F. [ABC182F] Valid payments

[ABC182F] Valid payments

配点 : 600600

問題文

AtCoder 国には A1A_1 円玉、A2A_2 円玉、A3A_3 円玉、\dotsANA_N 円玉の NN 種類のコインがあります。 ここで A1=1A_1 = 1 であり、1i<N1 \le i \lt N を満たす全ての整数 ii について、 Ai<Ai+1A_i \lt A_{i + 1} かつ Ai+1A_{i + 1}AiA_i の倍数です。

この国のある店で、犬のルンルンは XX 円の商品を購入するために店員に y (X)y\ (\ge X) 円を渡し、店員はお釣りとして yXy - X 円を返しました。(お釣りが 00 円の可能性もあります) このとき、ルンルンも店員もその金額をちょうど渡すのに必要な最小の枚数のコインで受け渡しを行いました。 また、ルンルンが店員に渡したコインのいずれかと同じ種類のコインが店員から返されることはありませんでした。

XX が与えられるので、yy として考えられる値が何通りあるかを求めてください。

制約

  • 1N501 \le N \le 50
  • $1 = A_1 \lt A_2 \lt A_3 \lt \dots \lt A_N \le 10^{15}$
  • Ai+1A_{i + 1}AiA_i の倍数 (1i<N)(1 \le i \lt N)
  • 1X10151 \le X \le 10^{15}
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN XX

$A_1 \hspace{7pt} A_2 \hspace{7pt} A_3 \hspace{5pt} \dots\ \hspace{5pt} A_N$

出力

yy として考えられる値が何通りあるかを出力せよ。

3 9
1 5 10
3

yy として考えられる値は 9,10,149, 10, 14 です。 例えば、 y=14y = 14 のときルンルンは 1010 円玉 11 枚と 11 円玉 44 枚を渡し、店員は 55 円玉 11 枚でお釣りを返します。 このとき、ルンルンが渡したどの種類のコインも店員は返していないので条件を満たします。

5 198
1 5 10 50 100
5

yy として考えられる値は 198,200,203,208,248198, 200, 203, 208, 248 です。

4 44
1 4 20 100
4

yy として考えられる値は 44,60,100,10444, 60, 100, 104 です。

9 11837029798
1 942454037 2827362111 19791534777 257289952101 771869856303 3859349281515 30874794252120 216123559764840
21