#57318. USACO Money Systems

USACO Money Systems

暂无测试数据。

题目描述

母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。他们对货币的数值感到好奇。

传统地,一个货币系统是由 $1,5,10,20$ 或 $25,50$ 和 $100$ 的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。

举例来说,使用一个货币系统{1,2,5,10,...}产生 $18$ 单位面值的一些可能的方法是:18x19x28x2+2x13x5+2+1,等等其它。

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

保证总数将会适合 long long (C/C++) 和 Int64 (Free Pascal)。

输入格式

货币系统中货币的种类数目是 $V \left( 1 \leq V \leq 25 \right)$。

要构造的数量钱是 $N \left( 1 \leq N \leq 10,000 \right)$。

第 $1$ 行:两个整数,$V$ 和 $N$。

第 $2...V+1$ 行:可用的货币 $V$ 个整数(每行一个,每行没有其它的数)。

输出格式

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

3 10
1 2 5
10