atcoder#ABC231E. [ABC231E] Minimal payments

[ABC231E] Minimal payments

配点 : 500500

問題文

Atcoder 王国では A1A_1 円, A2A_2 円, \ldots, ANA_N 円の NN 種類の硬貨が使用されています。 ここで、1=A1<<AN1=A_1 < \ldots < A_N であり、全ての 1iN11\leq i \leq N-1 に対し、Ai+1A_{i+1}AiA_i の倍数です。

硬貨のみを使って XX 円を支払うとき、支払いに使う硬貨の枚数とお釣りでもらう硬貨の枚数の合計の最小値はいくつですか?

正確には、YYXX 以上の整数を自由に動く時、YY 円ちょうどを表すために必要な硬貨の枚数と、YXY-X 円ちょうどを表すために必要な硬貨の枚数の和の最小値を求めてください。

制約

  • 入力に含まれる値は全て整数である
  • 1N601 \leq N \leq 60
  • $1=A_1 < \ldots
  • 全ての 1iN11\leq i \leq N-1Ai+1A_{i+1}AiA_i の倍数である
  • 1X10181\leq X \leq 10^{18}

入力

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

NN XX

A1A_1 \ldots ANA_N

出力

答えを出力せよ。

3 87
1 10 100
5

100100 円硬貨 11 枚で支払いを行い、1010 円硬貨 11 枚と 11 円硬貨 33 枚をお釣りでもらうと、合計枚数は 55 枚になります。

2 49
1 7
7

77 円硬貨 77 枚で支払いを行うのが最適です。

10 123456789012345678
1 100 10000 1000000 100000000 10000000000 1000000000000 100000000000000 10000000000000000 1000000000000000000
233