#ATabc121d. [ABC121D] XOR World

[ABC121D] XOR World

AT_abc121_d [ABC121D] XOR World

题目描述

给定 f(A, B)f(A,\ B) 表示从 AABB(包括 AABB)的所有整数的按位异或和,请你求出 f(A, B)f(A,\ B) 的值。

按位异或的定义如下:

对于整数 c1, c2, ..., cnc_1,\ c_2,\ ...,\ c_n,它们的按位异或和 yy 定义为:

  • yy 的二进制表示中,第 2k2^k 位(k0k \geq 0)为 11,当且仅当 c1, c2, ..., cnc_1,\ c_2,\ ...,\ c_n 中二进制表示的第 2k2^k 位为 11 的数的个数为奇数,否则为 00

例如,3355 的按位异或和为 66(二进制分别为 011101,它们的按位异或为 110)。

输入格式

输入从标准输入读取,格式如下:

AA BB

输出格式

请计算 f(A, B)f(A,\ B) 的值,并输出。

样例 1

输入

2 4

输出

5

样例 2

输入

123 456

输出

435

样例 3

输入

123456789012 123456789012

输出

123456789012

说明/提示

限制条件

  • 输入均为整数。
  • 0AB10120 \leq A \leq B \leq 10^{12}

样例解释 1

2, 3, 42,\ 3,\ 4 的二进制分别为 010011100。它们的按位异或和为 101,转换为十进制为 55

由 ChatGPT 4.1 翻译