zxa and xor

Accepts: 21
Submissions: 170
Time Limit: 16000/8000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
zxa最近对按位异或(exclusive disjunction)产生了极大的兴趣,为此他拿出了一个长度为$n$的非负整数序列$a_1,a_2,\cdots,a_n$。

zxa觉得这样太单调了,于是他定义了一种方法$funct(x,y)$,表示将$a_x$不可逆转地修改为$y$后计算$\otimes_{1\leq i < j\leq n}{(a_i+a_j)}$作为该方法的返回值。

zxa很好奇,如果他对这个序列调用$m$次这样的方法,那么每次得到的返回值分别是多少,你能帮助他吗?

提示:$\otimes_{1\leq i < j\leq n}{(a_i+a_j)}$即$(a_1+a_2)\otimes(a_1+a_3)\otimes\cdots\otimes(a_1+a_n)\otimes(a_2+a_3)\otimes(a_2+a_4)\otimes\cdots\otimes(a_2+a_n)\otimes\cdots\otimes(a_{n-1}+a_n)$。 
输入描述
第一行有一个正整数$T$,表示有$T$组数据。

对于每组数据:

第一行有两个正整数$n$和$m$。

第二行有$n$个非负整数,表示$a_1,a_2,\cdots,a_n$。

接下来$m$行,第$i(1\leq i\leq m)$行有两个非负整数$x$和$y$,表示第$i$调用的是$funct(x,y)$。

每一行相邻数字之间只有一个空格。

$1\leq T\leq 1000,2\leq n\leq 2\cdot10^4,1\leq m\leq 2\cdot10^4,0\leq a_i,y\leq 10^9,1\leq x\leq n,1\leq\sum{n},\sum{m}\leq10^5$
输出描述
对于每组数据,输出$m$行,第$i(1\leq i\leq m)$行包含一个非负整数,表示第$i$次调用方法的返回值。
输入样例
1
3 3
1 2 3
1 4
2 5
3 6
输出样例
4
6
8
Hint
第一次操作后序列为$\{4,2,3\}$,$(4+2)\otimes(4+3)\otimes(2+3)=4$。

第二次操作后序列为$\{4,5,3\}$,$(4+5)\otimes(4+3)\otimes(5+3)=6$。

第三次操作后序列为$\{4,5,6\}$,$(4+5)\otimes(4+6)\otimes(5+6)=8$。