#arc129a. [arc129_a]Smaller XOR

[arc129_a]Smaller XOR

题目描述

给定整数 NNLLRR。计算满足以下两个条件的整数 xx 的数量:

  • LleqxleqRL \\leq x \\leq R
  • (xoplusN)<N(x \\oplus N) < N(这里,oplus\\oplus 表示按位异或)。

什么是按位异或运算?

整数 AABB 的按位异或操作 AoplusBA\\oplus B 定义如下:

  • 当用二进制表示 AoplusBA\\oplus B 时,2k2^k 位上的数字(kgeq0k \\geq 0)如果且仅如果 AABB 中只有一个位为 11,则该位为 11,否则为 00

例如,我们有 3oplus5=63\\oplus 5 = 6(二进制表示:011oplus101=110011\\oplus 101 = 110)。

约束条件

  • 1leqNleq10181 \\leq N \\leq 10^{18}
  • 1leqLleqRleq10181 \\leq L \\leq R \\leq 10^{18}
  • 输入中的所有值都是整数。

输入

从标准输入中以以下格式给出输入:

NN LL RR

输出

输出答案。


示例输入 1

2 1 2

示例输出 1

1

对于 x=1x=1,满足 LleqxleqRL \\leq x \\leq R,但不满足 (xoplusN)<N(x \\oplus N) < N。对于 x=2x=2,两个条件都满足。没有其他满足条件的 xx


示例输入 2

10 2 19

示例输出 2

10

示例输入 3

1000000000000000000 1 1000000000000000000

示例输出 3

847078495393153025