#J00064. T4 序列(sequence)

0

T4 序列(sequence)

T4 序列(sequence)

题目描述

小 C 喜欢序列,某一天他随手写下了一个长度为 nn 的序列 AA,其中 ∀1≤i≤n\forall 1\le i\le n,Ai≥0A_i \ge 0。

可惜小 C 不小心弄丢了这个序列,但是他保存下了序列 AA 的一些特征。

  • l≤∑i=1nAi≤rl\le \sum_{i=1}^n A_i\le r。
  • ⨁i=1nAi=z\bigoplus_{i=1}^n A_i=z。

其中 ⨁\bigoplus 为二进制下的异或运算符号,l,r,zl,r,z 都为常数。

现在小 C 想要知道多少种可能的序列 AA 满足他所给出的特征,由于答案可能很大,你只需要告诉小 C 答案对 109+710^9+7 取模后的值。

输入格式

输入只有一行,包含四个整数,分别表示 n,l,r,zn,l,r,z。

输出格式

输出只有一行,包含一个整数。

样例 1 输入

4 1 3 2

样例 1 输出

4

样例 1 解释

所有可能的序列 AA 如下:

[2,0,0,0][2,0,0,0],[0,2,0,0][0,2,0,0],[0,0,2,0][0,0,2,0],[0,0,0,2][0,0,0,2]。

样例 2 输入

5 1 5 2

样例 2 输出

55

其余样例见下发文件。

数据规模与约定

  • 对于 20%20\% 的数据,保证 r≤30r\le 30。
  • 对于 40%40\% 的数据,保证 n≤20n\le 20,r≤500r\le 500。
  • 对于另 20%20\% 的数据,保证 n=2n=2。
  • 对于另 20%20\% 的数据,保证 n≤50n\le 50。
  • 对于 100%100\% 的数据,保证 1≤n≤1031\le n\le 10^{3},1≤l≤r≤10181\le l\le r\le 10^{18},1≤z≤10181\le z\le 10^{18}。