#P9197. [JOI Open 2016] 摩天大楼

[JOI Open 2016] 摩天大楼

题目背景

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

题目描述

将互不相同的 NN 个整数 A1,A2,,ANA_1, A_2, \cdots, A_N 按照一定顺序排列。

假设排列为 f1,f2,,fNf_1, f_2, \cdots, f_N,要求:$| f_1 - f_2| + | f_2 - f_3| + \cdots + | f_{N-1} - f_N| \leq L$。

求满足题意的排列的方案数对 109+710^9+7 取模后的结果。

输入格式

输入共两行。

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

输出格式

输出共一行一个整数,表示方案数对 109+710^9+7 取模后的结果。

4 10
3 6 2 9
6
8 35
3 7 1 5 10 2 11 6
31384

提示

样例 1 解释

满足条件的六种方案分别为:

$$\begin{matrix} 2\ 3\ 6\ 9,& |2 - 3| + |3 - 6| + |6 - 9| &=& 7 \\ 2\ 3\ 9\ 6,& |2 - 3| + |3 - 9| + |9 - 6| &=& 10 \\ 3\ 2\ 6\ 9,& |3 - 2| + |2 - 6| + |6 - 9| &=& 8 \\ 6\ 9\ 3\ 2,& |6 - 9| + |9 - 3| + |3 - 2| &=& 10 \\ 9\ 6\ 2\ 3,& |9 - 6| + |6 - 2| + |2 - 3| &=& 8 \\ 9\ 6\ 3\ 2,& |9 - 6| + |6 - 3| + |3 - 2| &=& 7 \\ \end{matrix} $$

数据规模与约定

本题采用捆绑测试。

对于所有数据,1N1001\le N\le 1001L10001\le L\le 10001Ai10001\le A_i\le 1000

  • Subtask 1(5 points):N8N\le 8
  • Subtask 2(15 points):N14N\le 14L100L\le 100
  • Subtask 3(80 points):没有额外限制。