龙吸水(EASY)
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

请注意,本题两个版本的区别仅在于 \mathrm{n} 与 \mathrm{a_i} 的范围。

小金同学是一名正义感爆棚的预言师兼半吊子魔法师。这天他在路过一条河流时使用了预言术,并成功预言到了之后 \mathrm{n} 天河流受自然因素影响(自然蒸发和降水)下的水位情况。具体来说,这 \mathrm{n} 天河流的水位会依序构成一个长度为 \mathrm{n} 的非负整数数列。

在小金看来,如果某一天河流的水位在 \mathrm{\left[ l,r\right]} 之间,这天就是无灾日;否则就认为这天极易出现洪涝或旱灾。身为一名富有正义感的预言师,他决定留在这条河边,控制河流的水位,保护周边村庄的安全。

但不幸的是,由于他只是一个半吊子魔法师,只会释放一种无咏唱水魔法:召唤一个龙卷风带走任意多的水。也就是说,他可以在任意一天使用魔法使河流的水位下降任意整数高度。当然,小金同学每天都能释放一次魔法,现在他想问问你,在最优情况下这 \mathrm{n} 天中最多可能存在多少个无灾日?

请注意,如果在某时刻改变河流水位,那么所预言河流将来的水位也应随之变化。同时,河流的水位最低只可能为 0 ,不可能是负数。比如预言之后三天河流水位依次为:3,1,5,我们可以认为第二天由于干旱,水位下降 2 ,第三天由于降水,水位上升 4。如果小金在第一天让水位从 3 下降到 1 后,由于干旱,在第二天水位应下降到 0。又由于降水,第三天水位应上升到 4,所以河流水位应改变为 1,0,4

输入描述:

第一行给出三个整数 \mathrm{n,l,r}(\mathrm{1 \le n \le 5 \times 10^3},\mathrm{1 \le l \le r \le 10^9}) 表示小金预言河流水位天数,以及安全河流水位的取值区间。

下一行给出 \mathrm{n} 个整数,其中 \mathrm{a_i}(\mathrm{0 \le a_i \le 5 \times 10^3}) 表示预言第 \mathrm{i} 天河流水位的值。

输出描述:

输出一行共 \mathrm{1} 个数,为这 \mathrm{n} 天中最多可能有多少无灾日。
示例1

输入

复制
3 2 5
8 1 3

输出

复制
2

说明

一种可行的方式是在第 1 天将水位下降 6 高度,此时河流这 3 天的水位将会变为 2,0,2
示例2

输入

复制
10 10 100
15 0 77 1004 1079 999 800 4715 10 1000

输出

复制
7