#1458. 异或与加减

异或与加减

题目描述

给定两个非负整数 xx 和 yy。在一次操作中,你可以将 xx 的值减 11,同时将 yy 的值加 11。如果 x=0x = 0,则无法执行此操作。

你可以对初始的数字执行任意次(包括 00 次)操作。你的首要目标是使得 x⊕yx \oplus y(即 xx 和 yy 的按位异或值)尽可能大。在所有能够获得最大异或值的操作方案中,你需要找出操作次数最少的方案。

请输出 x⊕yx \oplus y 可能达到的最大值,以及达到该值所需的最少操作次数。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)—— 测试用例的数量。

接下来的 tt 行,每行包含两个非负整数 xx 和 yy(0≤x,y<2290 \le x, y < 2^{29})—— 分别表示每个测试用例的初始数值。

输出格式

对于每个测试用例,输出一行两个整数,分别表示 x⊕yx \oplus y 可能达到的最大值,以及达到该值所需的最少操作次数。两个整数之间用一个空格隔开。

样例输入 1

3
3 1
0 5
6 4

样例输出 1

4 3
5 0
10 4

说明

数据范围

  • 对于所有测试点,保证 1≤t≤1041 \le t \le 10^4。
  • 对于每个测试用例,保证 0≤x,y<2290 \le x, y < 2^{29}。
  • 保证所有的输入数值均为整数。