#CSES1636. 硬币组合 II

硬币组合 II

题目背景

翻译自 CSES-1636 题。

题目描述

考虑一个包含 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, ..., 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