Problem
在魔法之地,使用面额为 A
1、A
2、...、A
M 的硬币。魔术师来到店里,发现自己的每种面额正好有两枚硬币。他需要支付金额N。写一个程序判断他是否可以不找零地支付。
输入
在程序的输入端 首先是数字 N (1 <= N <= 10
9),然后是数字 M (1 <= M <= 15),然后是 M 个成对不同的数字 A
1 , A
2,..., A
M (1 <= A
i <= 10
9 ).
印记
首先打印出K——魔术师如果能够不找零地支付指定的金额就必须给出的硬币数量。然后打印定义硬币价值的 K 个数字。如果有多个解决方案,请打印魔术师给出的硬币数量最少的变体。如果有多个这样的选项,打印其中的任何一个。
如果你不能没有零钱,那么打印一个数字 0。如果魔术师没有足够的钱来支付指定的金额,打印一个数字 -1(减一)。
<正文>
输入 |
输出 |
100 6
11 20 30 40 11 99
| 3
40 30 30
|
表>