#SM10L06P02. SM.10.L06.P02.货币系统(money)

SM.10.L06.P02.货币系统(money)

题目描述

母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统。由于它们特殊的思考方式,它们对货币的数值感到好奇。

传统地,一个货币系统是由 1,5,10,20,25,50,100 的单位面值组成的。

母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。

举例来说, 使用一个货币系统 (1,2,5,10, ... ) 产生 18 单位面值的一些可能的方法是:18×1,9×2,8×2+2×1,3×5+2+1,等等。

写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。保证总数在 64 位带符号整数的范围内。

输入格式

第一行两个整数 n , v ,其中 v 表示货币系统中货币的种类 ( 1 <= v <= 25 ),n 是要构造的面值 ( 1 <= n <=10,000 )。

第二行 v 个整数,表示可用的货币面值。

输出格式

输出方案总数。

样例

3 10
1 2 5
10