D. 序列(sequence)

    Type: Default 1000ms 256MiB

序列(sequence)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

T4 序列(sequence)

题目描述

小 C 喜欢序列,某一天他随手写下了一个长度为 nn 的序列 AA,其中 1in\forall 1\le i\le nAi0A_i \ge 0

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

  • li=1nAirl\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\% 的数据,保证 r30r\le 30
  • 对于 40%40\% 的数据,保证 n20n\le 20r500r\le 500
  • 对于另 20%20\% 的数据,保证 n=2n=2
  • 对于另 20%20\% 的数据,保证 n50n\le 50
  • 对于 100%100\% 的数据,保证 1n1031\le n\le 10^{3}1lr10181\le l\le r\le 10^{18}1z10181\le z\le 10^{18}