F题 不局限于n是偶数的做法,n是奇数也能做

def cal(n):
    if n<2:
        return 
    t=len(bin(n))-2
    tmp=(1<<t)-1
    if tmp==n:
        n-=1
    a=tmp-n-1
    for i in range(a+1,n+1):
        b[i]=tmp^i
    return cal(a)

n=int(input())
a=list(map(int,input().split()))
b=list(range(n+1))
cal(n)
print(*[b[i] for i in a])