第一行输入两个正整数表示数组区间的大小,子区间的长度。
由于数据量较大,故采取前个数据从外部输入,后
个数据按照某种方式生成。
接下来输入一个正整数表示
数组的前
个数据。
接下来一行输入个整数
表示
的值。
对于后个未确定的元素,按照
(数组
的下标从
开始计算)的方式依次确定它们的值。
接下来还需要确定个操作的内容。
由于数据量较大,故采取前个操作从外部输入,后
个操作按前
个操作循环的模式。
接下来首先输入一个正整数
接下来行首先输入一个正整数
表示操作。
根据操作数不同,表示不同的含义。
若表示需要对第
个子区间执行区间元素翻转的操作
若,则还需输入一个整数
表示对第
个子区间执行区间元素加上
的操作。
若,则还需输入一个整数
表示对第
个子区间执行区间元素乘以
的操作。
若,则需要查询第
个子区间元素之和对
取余数的结果。
为了避免输出量过大,请按照如下方式整合所有查询的答案后仅输出一个整数。
记每一个,区间元素之和对
余数的结果为
。
请输出(假设有
次查询操作)。
其中表示位运算异或。
请注意本题为非常见模数,题目保证它是一个质数。