思路:
其實就是一個構造題
我們考慮位運算&的性質 二進制位上一樣 纔能有貢獻
所以我們可以這樣構造
q+k q 0
k q+k k
這樣構造的話 題中的圖的僞代碼的值跑出來就是(q+k)&(q)&(q+k)&(k)=0
那麼按照我們選擇的話就i是 (q+k)&(k)&(q+k)&(k)=k
這樣就滿足要求了
其中q爲大於k的二次冪即可
#include<bits/stdc++.h>
using namespace std;
int main()
{
int k;
cin>>k;
cout<<2<<" "<<3<<endl;
cout<<(1<<17)+k<<" "<<(1<<17)<<" "<<0<<endl;
cout<<k<<" "<<(1<<17)+k<<" "<<k<<endl;
return 0;
}