#dwacon6thprelimse. [dwacon6th_prelims_e]Span Covering

[dwacon6th_prelims_e]Span Covering

题目描述

Niwango购买了一块被表示为半开区间 \[0,X)\[0, X) 的土地。

Niwango将在这块土地上铺设 NN 张乙烯基薄片。这些薄片的编号为 1,2,ldots,N1,2,\\ldots,N,它们是可区分的。对于第 ii 张薄片,他可以选择一个整数 jj,使得 0leqjleqXLi0 \\leq j \\leq X - L_i,并用这张薄片覆盖 \[j,j+Li)\[j, j + L_i)

找出用这些薄片覆盖土地的方式数量,使得 \[0,X)\[0, X) 中没有任何点保持未覆盖,取模 (109+7)(10^9+7)。当且仅当存在一个整数 ii (1leqileqN)(1 \\leq i \\leq N),使得薄片 ii 覆盖的区域不同,我们认为两种覆盖方式是不同的。

约束条件

  • 1leqNleq1001 \\leq N \\leq 100
  • 1leqLileqXleq5001 \\leq L_i \\leq X \\leq 500
  • 输入中的所有值都为整数。

输入

输入以以下格式从标准输入给出:

NN XX L1L_1 L2L_2 ldots\\ldots LNL_N

输出

输出答案。

示例1

3 3
1 1 2

输出示例1

10
  • 如果我们忽略整个区间是否被覆盖,有 1818 种布置薄片的方式。
  • 其中,有 44 种方式使得 \[0,1)\[0, 1) 未被覆盖,有 44 种方式使得 \[2,3)\[2, 3) 未被覆盖。
  • 其余的方式都覆盖了整个区间 \[0,3)\[0,3),因此答案是 1010

示例2

18 477
324 31 27 227 9 21 41 29 50 34 2 362 92 11 13 17 183 119

输出示例2

134796357
  • 求取取模 (109+7)(10^9+7) 后的方式数量。