问题描述 |
---|
为了能在跟好友游戏的时候使用更多的英雄和皮肤,涂涂决定把珍藏多年的古董号转到一区。 阅读完转区说明的涂涂发现转区的本质实际上是资产的转移,例如:原大区拥有英雄 A、B、C,一区拥有英雄 B、C、D。 转换完成后,只有英雄 A 从原大区转到了一区,因为英雄 B、C 在一区中已经拥有了。 所以转换完成后,原大区还剩英雄 B、C,一区拥有英雄 A、B、C、D。 现在,我们把英雄联盟的可转移资产抽象成一个 60 位的二进制数,某一位为 1 表示拥有该资产,否则表示未拥有该资产。 例如涂涂拥有第 1、3、5 个资产,那么这个区的资产用二进制表示为: 1010100000 0000000000 0000000000 0000000000 0000000000 0000000000 涂涂觉得用二进制表示太麻烦了,所以又把它转换成了十进制数。 现在涂涂给你两个十进制数 a 和 b,其中 a 表示原大区的资产,b 表示一区的资产。 请你输出转换后,原大区的资产和一区的资产。 |
输入描述 |
第一行是一个正整数 T 表示测试案例的数量。(1 ≤ T ≤ 10000) 每组案例包含两个十进制数 a 和 b 含义如描述。 保证 a 和 b 都可以转换成 60 位的二进制数。 |
输出描述 |
针对每组案例,输出两个十进制数,分别表示转换后,原大区的资产和一区的资产。 两个数字用空格隔开,然后换行。 |
样例输入复制样例 |
1 7 14 |
样例输出 |
6 15 |
提示说明 |
转换前: 7 -> 0111 14 -> 1110 转换后: 0110 -> 6 1111 -> 15 |
相关 |