#119. [USACO 2.3.4] Money Systems 货币系统

[USACO 2.3.4] Money Systems 货币系统

题目描述

母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。

他们对货币的数值感到好奇。传统地,一个货币系统是由 1,5,10,201,5,10,2025,5025,50100100 的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。

举例来说, 使用一个货币系统 {1,2,5,10,...}\{1,2,5,10,...\} 产生 1818 单位面值的一些可能的方法是:181,92,82+21,35+2+118*1, 9*2, 8*2+2*1,3*5+2+1,等等其它。

写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。

保证总数将会适合 long long (C/C++)

输入格式

11 行两个整数 VVNN。货币系统中货币的种类数目是 V(1V25)V(1≤ V≤25)。要构造的数量钱是 N(1N104)N(1≤ N≤10^4)

2V+12\sim V+1 行:可用的货币 VV 个整数 (每行一个,每行没有其它的数)。

输出格式

单独的一行包含那个可能的构造的方案数。

样例

3 10
1 2 5
10