1241. hard xor problem

正如很多刚学程序设计的人一样,cjh 刚刚学会了异或操作(也就是 xor),于是,他向 forty-twoo 炫耀自己学到的新本领。

forty-twoo 决定刁难 cjh,于是,向 cjh 提出一个问题,给你一个自然数 x,你能找到两个大于 0 的整数 a,b,满足 a ≤ ba \ xor \ b = x 吗?

cjh 想了想,若 x = 6,可以 a = 1,b = 7,也可以 a = 2,b = 4

于是问 forty-twoo:” 你要哪一组解??”。

forty-twoo:” 那就要使得 b 尽量小。”。

cjh 陷入了沉思。帮帮 cjh!

输入

一个数 T ,表示测试的组数。(1 ≤ T ≤ 100000)

每组有 1 个数 x(0 ≤ x ≤ 10^9)

输出

对于每个 x 输出两个正整数 ab,用一个空格隔开,满足 a \ xor \ b = x,a ≤ b,且 b 应 尽量小。

样例

标准输入 复制文本
3
6
8
10
标准输出 复制文本
2 4
1 9
2 8

来源

2019 SCNUCS-N 现场赛

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 13
通过 4