fk表示长度为k的全部子数组元素按位异或的结果。例如:对于原数组{1,2,3,4},长度为3 的子数组有{1,2,3}和{2,3,4},因此f3=(1⊕2⊕3)⊕(2⊕3⊕4)。同理f2=(1⊕2)⊕(2⊕3)⊕(3⊕4)。
现在,对于给定的一个长度为n的数组{a1,a2,...,an}。输出f1~ fn。
a⊕b表示a按位异或b(按位异或运算符"⊕”是双目运算符。其功能是参与运算的两数各对应的二进位相异或。只要对应的两个二进位不相同时,结果位就为1)。
第一行输入一个整数n(1≤n≤2×105)代表数组中的元素数量。
第二行输入n个整数a1,a2,...,an(0≤ai<230)代表数组元素,
在一行上输出n个整数,分别表示f1~fn。
输入
3
1 1 1
输出
1 0 1
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.