CF2085C.Serval and The Formula

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定两个正整数 xx 和 yy(1≤x,y≤1091 \le x, y \le 10^9)。

请找到一个非负整数 k≤1018k \le 10^{18},使得等式 (x+k)+(y+k)=(x+k)⊕(y+k)(x + k) + (y + k) = (x + k) \oplus (y + k) 成立∗^{\text{∗}},或判断这样的整数不存在。

∗^{\text{∗}}符号 ⊕\oplus 表示按位异或运算。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数 tt(1≤t≤1041 \le t \le 10^4)。接下来描述每个测试用例。

每个测试用例的唯一一行包含两个整数 xx 和 yy(1≤x,y≤1091 \le x, y \le 10^9)——给定的整数。

输出格式

对于每个测试用例,输出一个整数 kk(0≤k≤10180 \le k \le 10^{18})——找到的符合条件的整数。若不存在这样的整数,输出 −1-1。

若存在多个答案,输出任意一个即可。

输入输出样例

  • 输入#1

    5
    2 5
    6 6
    19 10
    1024 4096
    1198372 599188

    输出#1

    0
    -1
    1
    1024
    28

说明/提示

第一个测试案例中,由于 (2+0)+(5+0)=(2+0)⊕(5+0)=7(2 + 0) + (5 + 0) = (2 + 0) \oplus (5 + 0) = 7,因此 k=0k = 0 是合法答案。注意 k=4k = 4 也是一个合法答案,因为 (2+4)+(5+4)=(2+4)⊕(5+4)=15(2 + 4) + (5 + 4) = (2 + 4) \oplus (5 + 4) = 15。

第二个测试案例中,(x+k)⊕(y+k)=(6+k)⊕(6+k)=0(x + k) \oplus (y + k) = (6 + k) \oplus (6 + k) = 0。然而对于所有 k≥0k \ge 0,(x+k)+(y+k)>0(x + k) + (y + k) > 0 恒成立,因此这样的整数 kk 不存在。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页