#CF1324E. 睡眠时间表

睡眠时间表

E. 睡眠时间表
每个测试的时间限制:2 秒
内存限制:256 兆字节

Vova 有一个相当奇怪的睡眠时间表。一天有 hh 个小时。Vova 将会恰好睡觉 nn 次。第 ii 次他将在醒来后的 aia_i 小时之后开始睡觉。你可以假设 Vova 在这个故事开始时刚好醒来(初始时间为 00)。每次 Vova 恰好睡一整天(即 hh 个小时)。

Vova 认为第 ii 次睡觉的时间是 好的,如果他在 [l,r][l, r] 小时之间(包含端点)开始睡觉。

Vova 可以控制自己,在第 ii 次之前,他可以选择两个选项之一:在 aia_i 小时之后睡觉,或者在 ai1a_i - 1 小时之后睡觉。

你的任务是:如果 Vova 以最优方式行动,他能获得的最大好睡眠次数是多少。

输入
第一行包含四个整数 n,h,l,rn, h, l, r1n20001 \le n \le 20003h20003 \le h \le 20000lr<h0 \le l \le r < h)—— 睡觉次数、一天的小时数、以及好睡眠时间段的区间。
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai<h1 \le a_i < h),其中 aia_i 是第 ii 次睡觉前经过的小时数。

输出
打印一个整数 —— 如果 Vova 以最优方式行动,他能获得的最大好睡眠次数。

示例
输入

7 24 21 23
16 17 14 20 20 11 22

输出

3

提示
在示例中,最大好睡眠次数为 33

故事从 t=0t = 0 开始。然后 Vova 在 a11a_1 - 1 小时后睡觉,此时时间为 1515。这次不好。
然后 Vova 在 a21a_2 - 1 小时后睡觉,此时时间为 15+16=715 + 16 = 7。这次也不好。
然后 Vova 在 a3a_3 小时后睡觉,此时时间为 7+14=217 + 14 = 21。这次是好的。
然后 Vova 在 a41a_4 - 1 小时后睡觉,此时时间为 21+19=1621 + 19 = 16。这次不好。
然后 Vova 在 a5a_5 小时后睡觉,此时时间为 16+20=1216 + 20 = 12。这次不好。
然后 Vova 在 a6a_6 小时后睡觉,此时时间为 12+11=2312 + 11 = 23。这次是好的。
然后 Vova 在 a7a_7 小时后睡觉,此时时间为 23+22=2123 + 22 = 21。这次也是好的。