#P1037. C.相邻差(diff.cpp)

C.相邻差(diff.cpp)

题目描述

nn 个互不相同的整数 a1,a2,,ana_1,a_2,\cdots,a_n 你可以将他们任意排序,设排完后形成的序列是 f1,f2,...,fnf_1,f_2,...,f_n

要求:

i=2nfifi1L\sum_{i=2}^n| f_i-f_{i-1}|\le L

求满足要求的排列方案数,对 109+710^9+7 取模。

输入格式

第一行两个整数 n,Ln,L。 第二行 nn 整数 a1,a2,,ana_1,a_2,\cdots,a_n

输出格式

一行一个整数表示答案。

样例 #1

样例输入 #1

4 10
3 6 2 9

样例输出 #1

6

样例 #2

样例输入 #2

8 35
3 7 1 5 10 2 11 6

样例输出 #2

31384

提示

  • 对于 20%20\% 的数据,有 n8n\le 8
  • 对于 50%50\% 的数据,有 n20n\le 20
  • 对于另外 20%20\% 的数据,有 L100L\le 100
  • 对于全部 100%100\% 的数据,有 1n100,1L1000,1ai10001\leq n\le 100,1\leq L\le 1000,1\leq a_i\le 1000