#5108. Problem 2. Mountains

0

Problem 2. Mountains

Problem 2. Mountains

USACO 2022 December Contest, Gold

注意:本题的时间限制为 5 秒,通常限制的 2.5 倍。内存限制是通常限制的两倍。

沿着 Farmer John 的农场边缘有 NN1N20001 \leq N \leq 2000)座排成一行等间隔分布的山。这些山可以用一个高度数组 h1,h2,,hNh_1,h_2,\dots,h_N 表示。对于山 ii,如果没有一座山严格高于连接山 jjii 山顶的视线,则可以看到山 jj。形式化地说,对于两座山 i<ji < j,如果不存在 kk 使得 i<k<ji < k < j 并且 (k,hk)(k, h_k) 高于联结 (i,hi)(i, h_i)(j,hj)(j, h_j) 的线段,则这两座山之间互相可以看到对方。给定 QQ1Q20001 \leq Q \leq 2000)次更新操作,每次更新增加一座山的高度。求每次更新后可以互相看到的山的无序对数。

输入格式(从终端 / 标准输入读入):

输入的第一行包含 NN

22 行包含 NN 个高度 h1,h2,,hNh_1,h_2,\dots,h_N(对每一个 ii,有 0hi1090 \leq h_i \leq 10^9)。

33 行包含 QQ

443+Q3+Q 行每行包含 xxyy1xN1 \leq x \leq N1y1 \leq y),其中 xx 为山的编号,yy 是山增加的高度。输入保证这座山更新后的高度不超过 10910^9

输出格式(输出至终端 / 标准输出):

输出 QQ 行,包含每次更新后可以互相看到的山的无序对数。

输入样例:


5
2 4 3 1 5
3
4 3
1 3
3 2

输出样例:


7
10
7

初始时,以下的山之间可以互相看到:(1,2)(1, 2)(2,3)(2, 3)(2,5)(2, 5)(3,4)(3, 4)(3,5)(3, 5)(4,5)(4, 5),共 66 对。

第一次更新后,山 44 的高度为 44,这不会阻挡现有的可见性,但使得山 44 现在可以看到山 22,从而使得答案变为 77

第二次更新后,山 11 的高度为 55,这不会阻挡现有的可见性,但使得山 11 现在可以看到山 334455,从而使得答案变为 1010

第三次更新后,山 33 的高度为 55,阻挡了山 11 看到山 44,阻挡了山 22 看到山 4455,同时由于该山本就可以看到其他所有山,所以并没有使得该山看到更多的山,从而使得答案变为 77

测试点性质: 测试点 2-5 满足 N,Q100N, Q\le 100。 测试点 6-11 满足 Q10Q \leq 10。 测试点 12-21 没有额外性质。

供题:Joe Li,Larry Xing