inverse
Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 193 Accepted Submission(s): 97
Problem Description
Mike has got a huge array b, and he is told that the array is encrypted.The array is encrypted as follows.Let ai(0≤i<n) be the i-th number of this original array.Let bi(0≤i<n) be the i-th number of this encrypted array.Let n be a power of 2, which means n=2k.The bi is calculated as following.
bi=∑0≤j<nf((i or j) xor i)aj
f(x) means, if the number of 1 in the binary of x is even, it will return 1, otherwise 0.Mike want to inverse the procedure of encryption.Please help him recover the array a with the array b.
Input
The first line contains an integer T(T≤5), denoting the number of the test cases.For each test case, the first line contains an integer k(0≤k≤20),The next line contains n=2k integers, which are bi respectively.It is guaranteed that, ai is an integer and 0≤ai≤109.
Output
For each test case, output ''Case #t:'' to represent this is the t-th case. And then output the array a.
Sample Input
2 0 233 2 5 3 4 10
Sample Output
Case #1: 233 Case #2: 1 2 3 4
Source
Recommend