atcoder#ABC231E. [ABC231E] Minimal payments

[ABC231E] Minimal payments

题目描述

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

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

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

输入格式

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

N N X X A1 A_1 \ldots AN A_N

输出格式

答えを出力せよ。

题目大意

现有 nn 种硬币。

每个硬币的面额为 A1,A2,...,AnA_1,A_2,...,A_n

现在,你想买价值为 xx 元钱的物品。

求你用出的硬币个数和商家找回的硬币个数的总和的最小值是多少。

3 87
1 10 100
5
2 49
1 7
7
10 123456789012345678
1 100 10000 1000000 100000000 10000000000 1000000000000 100000000000000 10000000000000000 1000000000000000000
233

提示

制約

  • 入力に含まれる値は全て整数である
  • 1  N  60 1\ \leq\ N\ \leq\ 60
  • 1=A1 <  < AN  1018 1=A_1\ <\ \ldots\ <\ A_N\ \leq\ 10^{18}
  • 全ての 1 i  N1 1\leq\ i\ \leq\ N-1 Ai+1 A_{i+1} Ai A_i の倍数である
  • 1 X  1018 1\leq\ X\ \leq\ 10^{18}

Sample Explanation 1

100 100 円硬貨 1 1 枚で支払いを行い、10 10 円硬貨 1 1 枚と 1 1 円硬貨 3 3 枚をお釣りでもらうと、合計枚数は 5 5 枚になります。

Sample Explanation 2

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