编程题
### 问题描述
传说中,有一个神秘的岛屿,岛上面隐藏着数不尽的宝藏。岛上有一座古老的神庙,里面藏有更为珍贵的宝藏。然而,神庙却被一道强大的结界所保护。
据记载,这个结界只能被三根长度为整数的棍子破开,且这三根棍子的长度必须满足构成三角形的条件。这意味着如果长度分别为 $a, b, c$ 的三根棍子无法构成一个三角形或三根棍子的长度不全为整数,那么这三根棍子将无法打破结界。这个条件一直是神秘的,只有极少数人知道其中的奥秘。
你是一名勇敢的探险家,你和你的队友到达了这座神庙。你们手中有 $3$ 件神器,$3$ 件神器分别可以生成长度为 $A\sim B$ 之间的棍子 $x$,长度为 $B\sim C$ 之间的棍子 $y$,长度为 $C \sim D$ 之间的棍子 $z$。其中 $A \leq B \leq C \leq D$。
时间紧迫,你需要计算出,有多少种生成棍子的方法能够破开结界。岛上的宝藏等待着你的发掘,你能否成为发现宝藏的人呢?
### 输入格式
输入仅一行,包含四个整数 $A,B,C,D$($1\leq A\leq B \leq C \leq D \leq 5\times 10^5$),其含义如上所述。
### 输出格式
输出仅一行,包含一个整数,表示答案。
### 样例输入
```text
1 2 3 4
```
### 样例输出
```text
4
```
### 说明
在样例中,能够破开结界的生成方法有 `(1,3,3)`,`(2,2,3)`,`(2,3,3)`,`(2,3,4)` 共 $4$ 种。