D - Binomial Coefficient is Fun Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 600

問題文

長さが N の非負整数列 A があります。

長さが N で、和が M 以下である任意の非負整数列 B について、\prod _{i = 1} ^N \dbinom{B_i}{A_i} の値を計算し、その総和を 10^9 + 7 で割った余りを出力してください。

ここで \dbinom{B_i}{A_i} は、B_i 個のものの中から A_i 個のものを選ぶ場合の数(二項係数)であり、B_i < A_i のときは 0 です。

制約

  • 入力は全て整数
  • 1 \leq N \leq 2000
  • 1 \leq M \leq 10^9
  • 0 \leq A_i \leq 2000

入力

入力は以下の形式で標準入力から与えられる。

N M
A_1 A_2 \ldots A_N

出力

\prod _{i = 1} ^N \dbinom{B_i}{A_i} の総和を 10^9 + 7 で割った余りを出力せよ。


入力例 1

3 5
1 2 1

出力例 1

8

\prod _{i = 1} ^N \dbinom{B_i}{A_i}1 以上となるような数列 B の定め方は、以下の 4 通りです。

  • B = 1, 2, 1 とする。このとき \prod _{i = 1} ^N \dbinom{B_i}{A_i} = \dbinom{1}{1} \times \dbinom{2}{2} \times \dbinom{1}{1} = 1 である

  • B = 2, 2, 1 とする。このとき \prod _{i = 1} ^N \dbinom{B_i}{A_i} = \dbinom{2}{1} \times \dbinom{2}{2} \times \dbinom{1}{1} = 2 である

  • B = 1, 3, 1 とする。このとき \prod _{i = 1} ^N \dbinom{B_i}{A_i} = \dbinom{1}{1} \times \dbinom{3}{2} \times \dbinom{1}{1} = 3 である

  • B = 1, 2, 2 とする。このとき \prod _{i = 1} ^N \dbinom{B_i}{A_i} = \dbinom{1}{1} \times \dbinom{2}{2} \times \dbinom{2}{1} = 2 である

よって答えは 1 + 2 + 3 + 2 = 8 です。


入力例 2

10 998244353
31 41 59 26 53 58 97 93 23 84

出力例 2

642612171

Score : 600 points

Problem Statement

We have a sequence A of N non-negative integers.

Compute the sum of \prod _{i = 1} ^N \dbinom{B_i}{A_i} over all sequences B of N non-negative integers whose sum is at most M, and print it modulo (10^9 + 7).

Here, \dbinom{B_i}{A_i}, the binomial coefficient, denotes the number of ways to choose A_i objects from B_i objects, and is 0 when B_i < A_i.

Constraints

  • All values in input are integers.
  • 1 \leq N \leq 2000
  • 1 \leq M \leq 10^9
  • 0 \leq A_i \leq 2000

Input

Input is given from Standard Input in the following format:

N M
A_1 A_2 \ldots A_N

Output

Print the sum of \prod _{i = 1} ^N \dbinom{B_i}{A_i}, modulo (10^9 + 7).


Sample Input 1

3 5
1 2 1

Sample Output 1

8

There are four sequences B such that \prod _{i = 1} ^N \dbinom{B_i}{A_i} is at least 1:

  • B = \{1, 2, 1\}, where \prod _{i = 1} ^N \dbinom{B_i}{A_i} = \dbinom{1}{1} \times \dbinom{2}{2} \times \dbinom{1}{1} = 1;

  • B = \{2, 2, 1\}, where \prod _{i = 1} ^N \dbinom{B_i}{A_i} = \dbinom{2}{1} \times \dbinom{2}{2} \times \dbinom{1}{1} = 2;

  • B = \{1, 3, 1\}, where \prod _{i = 1} ^N \dbinom{B_i}{A_i} = \dbinom{1}{1} \times \dbinom{3}{2} \times \dbinom{1}{1} = 3;

  • B = \{1, 2, 2\}, where \prod _{i = 1} ^N \dbinom{B_i}{A_i} = \dbinom{1}{1} \times \dbinom{2}{2} \times \dbinom{2}{1} = 2.

The sum of these is 1 + 2 + 3 + 2 = 8.


Sample Input 2

10 998244353
31 41 59 26 53 58 97 93 23 84

Sample Output 2

642612171