#5789. CSES1635 硬币组合 I

0

CSES1635 硬币组合 I

#CS1635. 硬币组合 I

硬币组合 I

题目背景

翻译自 CSES-1635 题。

题目描述

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

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

  • 2+2+52 + 2 + 52+2+5

  • 2+5+22 + 5 + 22+5+2

  • 5+2+25 + 2 + 25+2+2

  • 3+3+33 + 3 + 33+3+3

  • 2+2+2+32 + 2 + 2 + 32+2+2+3

  • 2+2+2+32 + 2 + 2 + 32+2+2+3

  • 2+2+3+22 + 2 + 3 + 22+2+3+2

  • 2+3+2+22 + 3 + 2 + 22+3+2+2

  • 3+2+2+23 + 2 + 2 + 23+2+2+2

输入格式

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

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

输出格式

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

样例

3 9
2 3 5
8

说明/提示

1n1001\le n \le 100

1x1061\le x \le 10^6

1≤ci≤1061\le c_i \le 10^61≤ci​≤106。