atcoder#ARC133D. [ARC133D] Range XOR

[ARC133D] Range XOR

Score : 700700 points

Problem Statement

Given are integers LL, RR, and VV. Find the number of pairs of integers (l,r)(l,r) that satisfy both of the conditions below, modulo 998244353998244353.

  • LlrRL \leq l \leq r \leq R
  • l(l+1)r=Vl \oplus (l+1) \oplus \cdots \oplus r=V

Here, \oplus denotes the bitwise XOR\mathrm{XOR} operation.

What is bitwise $\mathrm{XOR}$?

The bitwise $\mathrm{XOR}$ of non-negative integers $A$ and $B$, $A \oplus B$, is defined as follows:

  • When $A \oplus B$ is written in base two, the digit in the $2^k$'s place ($k \geq 0$) is $1$ if exactly one of $A$ and $B$ is $1$, and $0$ otherwise.
For example, we have 3 \oplus 5 = 6 (in base two: 011 \oplus 101 = 110).
Generally, the bitwise \mathrm{XOR} of k integers p_1, p_2, p_3, \dots, p_k is defined as (\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k). We can prove that this value does not depend on the order of p_1, p_2, p_3, \dots p_k.

Constraints

  • 1LR10181 \leq L \leq R \leq 10^{18}
  • 0V10180 \leq V \leq 10^{18}
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

LL RR VV

Output

Print the answer.

1 3 3
2

The two pairs satisfying the conditions are (l,r)=(1,2)(l,r)=(1,2) and (l,r)=(3,3)(l,r)=(3,3).

10 20 0
6
1 1 1
1
12345 56789 34567
16950