#include<bits/stdc++.h>
using namespace std;
int T;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin >> T;
    long long n;
    while(T--){
    cin >> n;
    cout << (n<<32) << " " << (n<<32|n) << endl;
    }
}
错因:此题对位运算不了解,分析能力不够
思路:经了解可知,x异或y大于等于x-y,而通过最小公倍数可以得知,x可以写成na,y可以写成ny的形式,x-y->n(a-b)而n是一个确定的数,只有当a与b相差1时才能保证它有一个最小值,所以先假设一个n对它进行向左移位的操作,乘以2的k次方,这个数就相当于a,在移动后加上一个与n长度相同的的位,即n乘以了一个2的k+1次方,此数就相当于b,还有一个得出此思路的关键是观察n和x,y的取值范围