#dpm. [dp_m]Candies

[dp_m]Candies

题目描述

NN 个孩子,编号为 1,2,,N1, 2, \ldots, N

他们决定分享 KK 颗糖果。在这里,对于每个 ii (1iN1 \leq i \leq N),孩子 ii 必须获得 00aia_i 颗糖果(包括边界值)。此外,不能剩下任何糖果。

计算他们分享糖果的方式数,结果取模 109+710^9 + 7。在这里,当存在一个孩子获得不同数量的糖果时,认为两种方式是不同的。

约束条件

  • 输入中的所有值均为整数。
  • 1N1001 \leq N \leq 100
  • 0K1050 \leq K \leq 10^5
  • 0aiK0 \leq a_i \leq K

输入

从标准输入读入输入数据,数据格式如下:

NN KK a1a_1 a2a_2 \ldots aNa_N

输出

打印出孩子分享糖果的方式数,结果取模 109+710^9 + 7


示例输入 1

3 4
1 2 3

示例输出 1

5

以下是孩子分享糖果的五种方式:

  • (0,1,3)(0, 1, 3)
  • (0,2,2)(0, 2, 2)
  • (1,0,3)(1, 0, 3)
  • (1,1,2)(1, 1, 2)
  • (1,2,1)(1, 2, 1)

在这里,每个序列中的第 ii 个元素表示孩子 ii 获得的糖果数量。


示例输入 2

1 10
9

示例输出 2

0

可能没有办法让孩子们分享糖果。


示例输入 3

2 0
0 0

示例输出 3

1

以下是孩子分享糖果的一种方式:

  • (0,0)(0, 0)

示例输入 4

4 100000
100000 100000 100000 100000

示例输出 4

665683269

请务必将答案取模 109+710^9 + 7