#CSPJ4. 志愿者分组

    ID: 5 Type: Default 1000ms 256MiB Tried: 1 Accepted: 1 Difficulty: 10 Uploaded By: Tags>动态规划单调队列前缀和CSP-J

志愿者分组

志愿者分组

题目描述

开放日共有 nn 名志愿者排成一列,第 ii 名志愿者的能力值为 aia_i。负责人需要将他们按照原顺序分成若干个连续小组,每名志愿者必须恰好属于一个小组。

一个小组合法,当且仅当人数不少于 LL 且不超过 RR,并且组内能力值最大值与最小值之差不超过 KK

请你求出合法分组方案数,对 109+710^9+7 取模后输出。

输入格式

第一行四个整数 n,L,R,Kn,L,R,K。第二行 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n

输出格式

输出一个整数,表示合法方案数模 109+710^9+7 的结果。

样例输入

5 1 3 2
1 2 3 5 4

样例输出

12

样例解释

例如 [1] [2] [3] [5] [4][1 2] [3] [5 4][1 2 3] [5 4] 均为合法方案。合法方案总数为 1212

数据范围

  • 1LRn2×1051 \le L \le R \le n \le 2\times 10^5
  • 0K1090 \le K \le 10^9
  • 0ai1090 \le a_i \le 10^9
子任务 分值 特殊限制
11 1010 n20n \le 20
22 2020 n500n \le 500
33 n5000n \le 5000
44 L=1, R=nL=1,\ R=n
55 3030 无特殊限制