解题思路
将当前所有锚点的位置去重并从小到大排列为
x1<x2<⋯<xm
考虑两个相邻锚点 xi,xi+1。在它们之间,距离最近锚点最远的整数点位于中间,因此这一段产生的最大距离为
题目内容
产线侧在整数坐标轴上布置了 N 个温感锚点,编号 1 到 N。第 k 个锚点当前读数位置为 uk,全体位置记为整数数组 u1,u2,…,uN。
为衡量锚点覆盖的「最远盲区」,对任意长度 N 的整数数组 v1,v2,…,vN,定义:
- 左端 L=min(v1,v2,…,vN),右端 R=max(v1,v2,…,vN)。
- 对每个整数 t∈{L,L+1,…,R},其到最近锚点的距离为d(t)=min(∣t−v1∣,∣t−v2∣,…,∣t−vN∣).
- 盲区半径定义为这些距离的最大值:W(v)=max(d(L),d(L+1),…,d(R)).
即只在 [L,R] 内的整点 t 上取最近锚点距离,再取最大。
对读数数组 u 进行 T 次修改:每次将 ur 改为 z。每次修改后输出当前的 W(u)。
输入描述
第一行两个整数 N,T(2≤N,T≤100000),分别为锚点数量与修改次数。
第二行 N 个整数 u1,u2,…,uN(1≤uk≤109),初始位置。
接下来 T 行,每行两个整数 r,z(1≤r≤N,1≤z≤109),表示将编号 r 的锚点位置改为 z。
输出描述
输出 T 行,每行一个整数,为对应修改后的 W(u)。
样例1
输入
4 2
2 5 9 12
2 7
4 20
输出
2
5
说明
初始 distinct 位置 2,5,9,12,相邻半距最大为 ⌊(9−5)/2⌋=2,故 W(u)=2。
第 1 次将 u2 从 5 改为 7,相邻间距最大仍为 2。
第 2 次将 u4 改为 20,出现 ⌊(20−9)/2⌋=5,答案为 5。