#luoguP12029. [USACO25OPEN] Election Queries G

[USACO25OPEN] Election Queries G

本题没有可用的提交语言。

题目描述

注意:本题时间限制为 3 秒,是默认时间的 1.5 倍。

农夫约翰有 NN 头(2N21052 \leq N \leq 2 \cdot 10^5)编号从 11NN 的奶牛。农场正在举行选举,将选出两头新的领头牛。初始时,已知第 ii 头奶牛会投票给第 aia_i 头奶牛(1aiN1 \leq a_i \leq N)。

选举过程如下:

  1. 农夫约翰任意选择一个非空真子集 SS(即至少包含一头牛但不包含所有牛)。
  2. SS 集合中,得票数最多的候选牛将被选为第一头领头牛 xx
  3. 在剩余奶牛组成的集合中,得票数最多的候选牛将被选为第二头领头牛 yy
  4. 定义两头领头牛的差异度为 xy|x - y|。若无法选出两头不同的领头牛,则差异度为 00

由于奶牛们经常改变主意,农夫约翰需要进行 QQ 次(1Q1051 \leq Q \leq 10^5)查询。每次查询会修改一头奶牛的投票对象,你需要回答当前状态下可能获得的最大差异度。

输入格式

第一行包含 NNQQ

第二行包含初始投票数组 a1,a2,,aNa_1, a_2, \ldots, a_N

接下来 QQ 行,每行两个整数 iixx,表示将 aia_i 修改为 xx

输出格式

输出 QQ 行,第 ii 行表示前 ii 次查询后的最大可能差异度。

5 3
1 2 3 4 5
3 4
1 2
5 2
4
3
2
8 5
8 1 4 2 5 4 2 3
7 4
8 4
4 1
5 8
8 4
4
4
4
7
7

提示

样例一解释:

第一次查询后,a=[1,2,4,4,5]a = [1,2,4,4,5]。选择 S={1,3}S = \{1,3\} 时:

  • SS 中:牛 1111 票,牛 4411\to 可选择牛 11 或牛 44 作为第一头领头牛。
  • 剩余牛中:牛 2,4,52,4,5 各得 11\to 可选择牛 2,4,52,4,5 作为第二头领头牛。

最大差异度为 15=4|1-5| = 4

第二次查询后,a=[2,2,4,4,5]a = [2,2,4,4,5]。选择 S={4,5}S = \{4,5\} 时:

  • SS 中:牛 4411 票,牛 5511 票。
  • 剩余牛中:牛 2222 票。

最大差异度为 52=3|5-2| = 3

  • 测试点 343\sim4N,Q100N,Q \leq 100
  • 测试点 575\sim7N,Q3000N,Q \leq 3000
  • 测试点 8158\sim15:无额外限制。