#AT2009. E - Minimal payments

E - Minimal payments

当前没有测试数据。

E - 最小支付问题

分数:500 分

问题描述

在 Atcoder 王国有 $N$ 种硬币:$A_1$ 元硬币,$A_2$ 元硬币,$\ldots$,$A_N$ 元硬币。
这里,满足 $1=A_1 < \ldots < A_N$,并且对于任意 $1\leq i \leq N-1$,$A_{i+1}$ 是 $A_i$ 的整数倍。

当用这些硬币支付价值为 $X$ 元的商品时,作为找零的最小总硬币数是多少?

更确切地说,对于至少等于 $X$ 的整数 $Y$,找出表示 $Y$ 元所需的最小硬币数和表示 $Y-X$ 元所需的最小硬币数之和。

约束

  • 输入中的所有值都是整数。
  • $1 \leq N \leq 60$
  • $1=A_1 < \ldots <A_N \leq 10^{18}$
  • 对于任意 $1\leq i \leq N-1$,$A_{i+1}$ 是 $A_i$ 的整数倍。
  • $1\leq X \leq 10^{18}$

输入

输入以以下格式从标准输入中给出:

NN XX

A1A_1 \ldots ANA_N

输出

输出答案。


3 87
1 10 100
5

如果我们用一枚 100 元硬币支付,并且找回一枚 10 元硬币和三枚 1 元硬币作为找零,总共使用 5 枚硬币。


2 49
1 7
7

支付七枚 7 元硬币是最优的。


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