鸡尾酒获得了一个数组,他定义数组的价值为每个相邻元素异或之和。例如数组 [3,5,9] 的价值为 (3^5) + (5^9) = 18 ,其中 ^ 为二进制中的异或运算。
现在他将数组向右进行
次向右循环移动,每次移动
位,循环移动都建立在上一次移动的基础上进行。现在他想考考你,每次循环移动过后,这个数组的价值为多少? 向右循环移动的定义:向右循环移动一位,数组中最右边的元素变成最左边的元素,其余元素全部向右移动一位。 例如数组 [1,2,3,4,5] 向右循环移动两位的结果是 [4,5,1,2,3]。
先输出一个答案表示原来数组的价值,然后输出
个整数,表示对于每一次循环移位后,数组当前的价值。所有输出的整数用空格隔开。
【样例说明】
初始时数组价值为 (1^2) + (2^3) + (3^4) + (4^5) = 12。 第一次移位之后,数组变为 [5,1,2,3,4] ,其价值为 (5^1) + (1^2) + (2^3) + (3^4) = 15。
第二次移位之后,数组再次向右循环移动一次,数组变为 [4,5,1,2,3],价值为 9。 第三次移位之后,数组向右移动两次,变为 [2,3,4,5,1],价值为 13。
样例2输入:
5 5
10 13 2 5 6
4
1
5
1
2
样例2输出:
32 37 32 32 41 29