#1644. [ABC231E] Minimal payments

[ABC231E] Minimal payments

题目描述

现有 nn 种硬币。

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

保证对于  1in1\forall\ 1\le i\le n-1Ai+1A_{i+1}AiA_i倍数

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

求你用出的硬币个数和商家找回的硬币个数的总和的最小值是多少。具体可以参考样例解释

输入格式

第一行输入两个整数 N,XN, X

接下来一行输入 NN 个空格隔开的整数代表 AiA_i

输出格式

输出一个整数

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

提示

  • 所有输入值均为整数。
  • 1N601 \leq N \leq 60
  • 1=A1<<AN10181=A_1<\cdots<A_N \leq 10^{18}
  • 1iN11\leq i \leq N-1Ai+1A_{i+1} 都是 AiA_i 的倍数。
  • 1X10181\leq X \leq 10^{18}

Sample Explanation 1

如果我们用一枚 100100 硬币付款,并收到一枚 1010 硬币和三枚 11 硬币作为找零,那么花费的硬币的总数就是 55

Sample Explanation 2

直接使用 77 个面值为 77 的硬币付款,不需要找零。