#CSES1635. 硬币组合 I

硬币组合 I

题目背景

翻译自 CSES-1635 题。

题目描述

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

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

  • 2+2+52 + 2 + 5
  • 2+5+22 + 5 + 2
  • 5+2+25 + 2 + 2
  • 3+3+33 + 3 + 3
  • 2+2+2+32 + 2 + 2 + 3
  • 2+2+2+32 + 2 + 2 + 3
  • 2+2+3+22 + 2 + 3 + 2
  • 2+3+2+22 + 3 + 2 + 2
  • 3+2+2+23 + 2 + 2 + 2

输入格式

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

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

输出格式

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

样例

3 9
2 3 5
8

说明/提示

1n1001\le n \le 100

1x1061\le x \le 10^6

1ci1061\le c_i \le 10^6