异或运算拥有许多美妙的性质。为了更好的理解异或运算,你需要做如下的一个实验:
有一个 nnn 个元素的数列 aaa,要进行 mmm 次查询,每次查询形式如下:
给出两个整数 lll, rrr ,表示查询区间的左右端点.
取出区间 [l,r][l, r][l,r] 中的所有出现过且出现了偶数次的整数。比如 1, 2, 1, 2, 1 ,则会取出一个数 2.
将取出来的数全部异或起来,并将该异或值作为本次查询的答案。形式化来说,设取出的数为 x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn,则计算 x1⊕x2⊕...⊕xnx_1\oplus x_2 \oplus ... \oplus x_nx1⊕x2⊕...⊕xn , 其中 ⊕\oplus⊕ 表示异或运算.
第一行一个整数 nnn,表示数列的长度.
接下来一行 nnn 个非负整数,表示 aaa 数组中的每个元素.
接下来一行一个整数 mmm,表示查询的数量.
接下来 mmm 行,每行两个整数 l,rl, rl,r, 表示这次查询区间的左右端点.
对于每组查询,输出一行一个整数,表示这组查询的答案.
7 1 2 1 3 3 2 3 5 4 7 4 5 1 3 1 7 1 5
0 3 1 3 2
0<n,m≤3000000<n,m ≤ 3000000<n,m≤300000
0≤ai≤10000000000 ≤ a_i ≤ 10000000000≤ai≤1000000000
1≤l≤r≤n1 ≤ l ≤ r ≤ n1≤l≤r≤n