#5045. Popcount and XOR
0
Popcount and XOR
Popcount and XOR
题目描述
你被给定非负整数 、 和 。 判断是否存在一对非负整数 满足下面五个条件。若存在这样的一个对,则输出其中一对。
0 \leq X < 2^{60} 0 \leq Y < 2^{60}
这里, 表示按位异或。 如果有多个满足条件的对 ,你可以输出其中任意一对。
什么是 popcount?
对于非负整数 $x$,$x$ 的 popcount 是其二进制表示中 $1$ 的个数。 更精确地,对于非负整数 $x$,若 $\displaystyle x=\sum _ {i=0} ^ \infty b _ i2 ^ i\ (b _ i\in\lbrace0,1\rbrace)$,则有 $\displaystyle\operatorname{popcount}(x)=\sum _ {i=0} ^ \infty b _ i$。例如, 的二进制是 ,所以 。
什么是按位异或?
对于非负整数 $x, y$,按位异或 $x \oplus y$ 定义如下。在二进制表示中,第 位 在 中为 当且仅当在 和 的二进制表示中第 位恰好有一个为 ,否则为 。
例如, 和 的二进制分别是 和 ,因此 (二进制为 )。
输入格式
输入由标准输入按照下述格式给出:
输出格式
如果存在满足条件的一对非负整数,选择这样一对 并按顺序打印 和 ,中间用一个空格分隔。 如果不存在这样的对,打印 。
3 4 7
28 27
34 56 998244353
-1
39 47 530423800524412070
540431255696862041 10008854347644927
提示
0 \leq C < 2^{60} 所有输入值均为整数。这一对 满足条件。 此处 和 的二进制分别为 和 。
的二进制是 ,所以 。 的二进制是 ,所以 。 的二进制是 ,所以 。
如果存在多对满足条件的非负整数,你可以输出其中任意一对,所以例如输出 也会被接受。
不存在满足条件的非负整数对。
注意要输出的值可能无法容纳在 32 位整数中。
标签: AtCoder|abc347D
来源
AtCoder|abc347D