题目描述
译自 JOI Open 2016 T3 「高層ビル街 / Skyscraper」
将互不相同的 N 个整数 A1,A2,…,AN 按照一定顺序排列。
假设排列为 f1,f2,…,fN,要求:$| f_1 − f_2| + | f_2 − f_3| + \dots + | f_{N−1} − f_N| \le L$。
求满足题意的排列的方案数 mod(109+7)。
输入格式
第一行有两个整数 N,L。
第二行有 N 个整数 A1,A2,…,AN。
输出格式
一行,一个整数,表示方案数 mod(109+7)。
样例 1
输入
4 10
3 6 2 9
输出
6
解释:
- 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。
样例 2
输入
8 35
3 7 1 5 10 2 11 6
输出
31384
数据范围与提示
对于所有数据:
- 1≤N≤100
- 1≤L≤1000
- 1≤Ai≤1000
| 子任务 |
分值 |
限制 |
| 1 |
5 分 |
N≤8 |
| 2 |
15 分 |
N≤14,L≤100 |
| 3 |
80 分 |
没有额外限制 |