#L2743. 「JOI Open 2016」摩天大楼

「JOI Open 2016」摩天大楼

题目描述

译自 JOI Open 2016 T3 「高層ビル街 / Skyscraper」

将互不相同的 NN 个整数 A1,A2,,ANA_1, A_2, \dots, A_N 按照一定顺序排列。
假设排列为 f1,f2,,fNf_1, f_2, \dots, f_N,要求:$| f_1 − f_2| + | f_2 − f_3| + \dots + | f_{N−1} − f_N| \le L$。
求满足题意的排列的方案数 mod(109+7)\bmod (10^9+7)


输入格式

第一行有两个整数 N,LN, L
第二行有 NN 个整数 A1,A2,,ANA_1, A_2, \dots, A_N


输出格式

一行,一个整数,表示方案数 mod(109+7)\bmod (10^9+7)


样例 1

输入

4 10
3 6 2 9

输出

6

解释:

  • 2 3 6 92\ 3\ 6\ 9, 23+36+69=7|2 − 3| + |3 − 6| + |6 − 9| = 7
  • 2 3 9 62\ 3\ 9\ 6, 23+39+96=10|2 − 3| + |3 − 9| + |9 − 6| = 10
  • 3 2 6 93\ 2\ 6\ 9, 32+26+69=8|3 − 2| + |2 − 6| + |6 − 9| = 8
  • 6 9 3 26\ 9\ 3\ 2, 69+93+32=10|6 − 9| + |9 − 3| + |3 − 2| = 10
  • 9 6 2 39\ 6\ 2\ 3, 96+62+23=8|9 − 6| + |6 − 2| + |2 − 3| = 8
  • 9 6 3 29\ 6\ 3\ 2, 96+63+32=7|9 − 6| + |6 − 3| + |3 − 2| = 7

样例 2

输入

8 35
3 7 1 5 10 2 11 6

输出

31384

数据范围与提示

对于所有数据:

  • 1N1001\le N\le 100
  • 1L10001\le L\le 1000
  • 1Ai10001\le A_i\le 1000
子任务 分值 限制
1 5 分 N8N\le 8
2 15 分 N14,L100N\le 14, L\le 100
3 80 分 没有额外限制