#3921. 魔法字符串

魔法字符串

🐰🐱📜『兔猫信奥学院之魔法字符串』

小兔和小猫最近迷上了加菲老师的神奇魔法课。今天,加菲老师决定教他们一种奇妙的咒语创造法术:

『每一次施法,能在已有的魔法字符串尾部附加若干个连续的 0 或若干个连续的 1。具体来说,每次施法只能做下面之一:』

  • 在末尾添加连续的 zerozero0
  • 在末尾添加连续的 oneone1

初始的魔法字符串是空的 "",通过不断施法,小兔和小猫便能构造出长度不同的魔法字符串。

加菲老师特别指出,只有长度在 lowlowhighhigh(包含两端)之间的魔法字符串才是“好”的魔法字符串。

现在,小兔和小猫想知道,他们最多可以构造出多少个不同的“好”魔法字符串呢?

由于答案可能很大,请输出答案对 109+710^9 + 7 取余后的结果。


输入格式

一行四个整数 low high zero one
  • 1lowhigh1051 \le low \le high \le 10^5
  • 1zero,onelow1 \le zero, one \le low

输出格式

一个整数,表示可构造的不同好魔法字符串数目,对 10^9+7 取余。
3 3 1 1
8

样例解释1
可构造出所有长度为3的二进制串,从 "000""111"88 种。


2 3 1 2
5

样例解释2
满足条件的魔法字符串为 "00", "11", "000", "011", "110"