#YDRS006E. 希望有羽毛和翅膀

希望有羽毛和翅膀

希望有羽毛和翅膀 - 知更鸟 / HOYO-MiX / Chevy

题目描述

云浅给了你一个非负整数构成的可重集合 SS,你可以进行任意次操作,每次你可以从集合中选一个数 xx,满足 xx 在集合中出现至少两次,然后删除 xx,并插入 x1x-1(此时需保证 x1x\ge 1)或 x+1x+1

你希望最大化 SS 中所有元素的 mex\text{mex}。定义上述问题的答案为 F(S)F(S)

  • 一个集合 SSmex\text{mex} 定义为最小的没有出现过的非负整数,例如 mex({0,1,3})=2,mex({1,2})=0\text{mex}(\{0,1,3\})=2,\text{mex}(\{1,2\})=0

给定一个长为 nn 的序列 aa,有 qq 次询问,每次询问给出 l,rl,r,你需要输出 F({al,al+1,,ar})F(\{a_l,a_{l+1},\cdots,a_r\}) 的值。

输入格式

第一行两个正整数 n,qn,q

接下来一行 nn 个非负整数 a1,a2,,ana_1,a_2,\cdots,a_n

接下来 qq 行,每行两个正整数 l,rl,r

输出格式

对于每组询问,输出一行一个正整数表示答案。

样例 11 输入

10 9
3 0 0 0 5 1 1 1 2 1
1 2
8 8
5 7
1 7
2 2
1 5
5 6
4 6
3 10

样例 11 输出

1
0
2
7
1
4
0
2
8

样例 11 解释

以询问 [1,5][1,5] 为例:S={0,0,0,3,5}S=\{0,0,0,3,5\},我们进行如下操作:

  • 删去一个 00,插入一个 11,此时 S={0,0,1,3,5}S=\{0,0,1,3,5\}
  • 删去一个 00,插入一个 11,此时 S={0,1,1,3,5}S=\{0,1,1,3,5\}
  • 删去一个 11,插入一个 22,此时 S={0,1,2,3,5}S=\{0,1,2,3,5\}

最终 S={0,1,2,3,5}S=\{0,1,2,3,5\},有 mex(S)=4\text{mex}(S)=4,为可能的 mex(S)\text{mex}(S) 的最大值。

注意不能删去 55 然后插入 44,因为 55SS 中只出现了一次。

测试点约束

对于所有数据,1n,q5×105,0ai5×1051\le n,q\le 5\times 10^5,0\le a_i\le 5\times 10^5

子任务编号 nn\le qq\le 分值 依赖子任务
Subtask #1 77 66
Subtask #2 100100 1010 11
Subtask #3 50005000 99 1,21,2
Subtask #4 10510^5 10510^5 1515 1,2,31,2,3
Subtaks #5 3×1053\times 10^5 1616 1,2,3,41,2,3,4
Subtask #6 2×1052\times 10^5 1,2,3,4,51,2,3,4,5
Subtask #7 5×1055\times 10^5 2828 1,2,3,4,5,61,2,3,4,5,6