1733 挂横幅


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 32M

Problem types
Allowed languages
C, C++, Java, Python

Description

ChinaJoy又开始了!这次各大公司又将挂起各种宣传横幅。横幅会挂在两个柱子间的长度介于L1..L2的细线上。 ChinaJoy会场是一个W×H 的矩阵 并且主办方在每个坐标点上都竖立了柱子,在这 (W + 1) * (H + 1)个柱子上,主办方要选其中两个连上细线以挂上主办方自己的横幅。 CJ主办方不希望在他们的横幅之间有任何杂物,就是说在这条细线下面没有别的柱子,也不能穿过其它的柱子。 现在CJ主办方希望你能编程帮助他们算出有多少种挂横幅的方案。 考虑如下例子: 会场地图大小是W = 2 H = 1:

         *

         *

而横幅长度为2和3之间。这个会场共有 (2+1) (1+1) = 6个点以及有(6 选 2) = (65)/(2*1) = 15 对不同的选择方法:

   (0,0)-(0,1)   (0,0)-(2,1)   (0,1)-(2,1)   (1,1)-(2,0)

   (0,0)-(1,0)   (0,1)-(1,0)   (1,0)-(1,1)   (1,1)-(2,1)

   (0,0)-(1,1)   (0,1)-(1,1)   (1,0)-(2,0)   (2,0)-(2,1)

   (0,0)-(2,0)   (0,1)-(2,0)   (1,0)-(2,1)

在这之中,只有四种是长度在2到3之间的:                     长度                      长度 

        (0,0)-(2,0) 2.00          (0,1)-(2,0) 2.24 

        (0,0)-(2,1) 2.24          (0,1)-(2,1) 2.00 

但在这四种之中,(0,0)-(2,0)和(0,1)-(2,1)都穿过了其他的柱子,不符合主办方的要求,所以这个例子中15对选择方法中只有2种是可以成功挂上横幅的,所以答案是2。

Input

输入有多组数据,每组数据一行,包含4个整数W, H,(1 <= W <= 1,000; 1 <= H <= 1,000), L1, 和 L2,(1 <= L1 <= L2; L1 <= L2 <= 1,500)

Output

对于每组数据,输出一行,包含一个整数,表示可以成功帮主办方挂上横幅的方案有多少种。

Sample

Input

2 1 2 3

Output

2

Source: LCS


Comments

There are no comments at the moment.