题目描述
你翻阅古籍,发现了一种古老的飞行方式。
在原来的飞行方式中,每个时刻你都会前进一次。若当前位于 (t,h),则会移动到
(t+1,h+1),
并付出 h+1 的代价。
每次前进之后,你都可以进行一次不消耗时间和代价的下坠,即可以把当前位置 (t,h) 变为任意的
(t,h′),h′≤h.
但你厌倦了每次都要决定下坠到哪里,于是改进了飞行方式。
现在,一次前进可以从 (t,h) 直接到达
(t+z,h+z),z>0.
若一次前进的长度为 z,那么这次前进的代价为
(h+z)2z−1.
一条完整路径的代价,等于这条路径上每次前进代价的乘积。
你在时刻 0 从高度 h0 出发,即起点为 (0,h0)。你需要经过若干次前进,并在每次前进后进行一次下坠。经过最后一次下坠后,你位于
(n,H),H∈[l,r].
求所有满足条件的路径的代价之和,对 998244353 取模。
输入格式
一行包含四个整数 n,h0,l,r。
输出格式
输出一行一个整数,表示所有满足条件的路径的代价之和对 998244353 取模后的结果。
样例 1
2 13 11 11
4285
样例解释 1
可以先前进 1 格,付出代价 14。随后下坠 0∼4 格,再前进 1 格。第二次前进的代价之和为
11+12+13+14+15,
因此这类路径的总代价为
14×(11+12+13+14+15)=910.
也可以第一次直接前进 2 格,其代价为
153=3375.
所以答案为
910+3375=4285.
样例 2
211 985 666 999
989999638
数据范围与约定
- 对于 10% 的数据,h0≤1000;
- 对于另外 20% 的数据,∣h0−l∣≤500;
- 对于另外 10% 的数据,r−l≤105;
- 对于全部数据,n≤500,2n≤h0≤109,n≤l≤r≤h0+n。