abc 126 F - XOR Matching (python)
XOR の知識
1.a^a = 0, a^b^a = a^a^b = b(交換法則)
2.n%4 = 1 のとき 1^2^...^n = 1, n%4 = 3 のとき 1^2^...^n = 0 (ABC121 D)
2. から 1^2^...^2**m-1 = 0 となり、1. から k<2**m のとき
1^2^,...,^k-1^k+1^,...,^2**m-1 = k となる。
考察はできたが実装が手こずった。
m,k = map(int,input().split()) if m*k == 1: print(-1) exit() if k == 0: ans = [] for i in range(2**m): ans.append(i) ans.append(i) print(*ans) exit() if 2**m <= k: print(-1) else: ans = [k] chk = list(range(2**m)) chk.remove(k) ans = ans+chk+[k]+chk[::-1] print(' '.join(map(str,ans)))