时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
现有

个数,每个数有权值

;

次询问,每次询问

内
%20%5C%257)
的值,其中

为区间

中第

小的数的值。比如说区间内的数为

,那么其贡献为
%5C%257)
。
出题人觉得题目过于简单,他加上了一些小修改,每次询问区间

由输入区间

转换,
其中

为上次询问的输出结果,

初始为0,

为整数的XOR操作。注意,区间

最终只取有效区域,即

的交集。比如

的区间最终有效区间为

,

的区间有效区间为空,为空的区间值自然为0。
输入描述:
第一行一个整数
表示数据组数。
接下来每组数据,第一行一个整数
;
接下来一行
个整数
。
接下来一行一个整数
;
接下来
行每行两个整数
。
输出描述:
每个输出一行,表示答案。
示例1
输入
复制
1
6
3 4 1 2 5 6
3
1 5
2 4
3 6