#CSES1636. 硬币组合 II

硬币组合 II

题目描述

考虑一个包含 nn 枚硬币的货币系统。每枚硬币都有一个正整数值。你的任务是计算使用这些硬币组成目标金额 xx 的不同有序组合数。

例如,如果硬币为 {2,3,5}\{2, 3, 5\},并且目标金额为 99,那么有 33 种不同的有序组合方式:

  • 2+2+52 + 2 + 5
  • 3+3+33 + 3 + 3
  • 2+2+2+32 + 2 + 2 + 3

输入格式

第一行输入两个整数 nnxx,分别代表硬币的数量和目标金额。

第二行输入 nn 个不同的整数 c1,c2,,cnc_1, c_2, \ldots, c_n,代表每枚硬币的面值。

输出格式

输出一个整数,表示使用这些硬币组成目标金额 xx 的不同有序组合数。结果需对 109+710^9 + 7 取模。

样例

3 9
2 3 5
3

数据范围

  • 1n1001 \le n \le 100
  • 1x1061 \le x \le 10^6
  • 1ci1061 \le c_i \le 10^6