CF1790E题解
ZHANGyutao123 · · 题解
CF1790E 题解
传送门
题目大意
给定
需要注意的是,这里
解题思路
我们对
两边同时异或上
所以只用判断
代码如下:
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t; // 读入测试数据组数
while (t--) { // 处理每一组测试数据
int x;
cin >> x; // 读入正整数 x
long long a = x / 2, b = x + (x - a); // 根据题目意思求出满足条件的 a 和 b
if ((a ^ b) == x) // 如果异或结果与 x 相等,则说明 a 和 b 满足条件
cout << a << ' ' << b << '\n'; // 输出 a 和 b
else
cout << "-1\n"; // 否则输出 -1
}
return 0;
}