题目描述
对一个元素互不相同的长度 ≥3 的正整数序列 a,定义 a 的“肿胃数(nediam)”f(a) 为:
- 当 ∣a∣=3 时,f(a) 为 a 的中位数;
- 当 ∣a∣>3 时,取 a 的任意一个长度为 3 的子段 [ai,ai+1,ai+2],记这个子段的中位数为 x,a 删掉 x 后的序列为 b,f(a) 为所有 b 中 f(b) 的最大值。
乌龟给你一个 1∼n 的排列 p1,p2,…,pn 和 m 次询问,每次询问给定 l,r,你需要求出 [pl,pl+1,…,pr] 的“肿胃数(nediam)”,即 f([pl,pl+1,…,pr])。
输入格式
为了加快读入速度,我们采用以下读入方法。
第一行包含六个正整数 n,m,seed,A,B,C。
第二行包含一个排列 p1,p2,…,pn。
接下来的 m 组询问,每组询问你要按照如下的方式生成 (l,r):
每组询问调用一次 gen()
生成这组询问的 (l,r)。
输出格式
为了加快输出速度,我们采用以下输出方法。
设第 i 组询问的答案为 ansi,你需要输出 (1×ans1)⊕(2×ans2)⊕⋯⊕(m×ansm),其中 ⊕ 为按位异或。
提示
【样例解释 #1】
生成的四组询问分别为 (1,4),(1,3),(1,3),(2,4),答案分别为 2,3,3,3,所以你需要输出 (1×2)⊕(2×3)⊕(3×3)⊕(4×3)=2⊕6⊕9⊕12=1。
对于第一组询问,选择子段 [1,3,4] 或 [3,4,2] 都会使得 3 被删除。删除 3 后的序列为 [1,4,2],中位数为 2。
【数据范围】
本题使用捆绑测试。
子任务编号 |
n≤ |
m≤ |
特殊性质 |
分值 |
1 |
18 |
100 |
无 |
9 |
2 |
106 |
5×106 |
A |
5 |
3 |
103 |
104 |
无 |
19 |
4 |
105 |
17 |
5 |
106 |
106 |
B |
15 |
6 |
无 |
13 |
7 |
5×106 |
22 |
- 特殊性质 A:pi=i;
- 特殊性质 B:p 从所有 1∼n 的排列中等概率随机生成。
对于所有数据,满足:
- 3≤n≤106;
- 1≤m≤5×106;
- 0≤seed,A,B,C<232;
- p 是一个 1∼n 的排列。