#P13963. [ICPC 2023 Nanjing R] 接雨水

    ID: 15730 远端评测题 5000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>线段树2023颜色段均摊(珂朵莉树 ODT)分块ICPC吉司机线段树 segment tree beats单调栈南京

[ICPC 2023 Nanjing R] 接雨水

题目描述

有一张由长度为 nn 的序列 a1,a2,,ana_1, a_2, \cdots, a_n 表示的柱状图。柱状图上从左到右第 ii 根柱子的高度为 aia_i,宽度为 11

我们会对该柱状图进行 qq 次修改。第 ii 次修改可以记为一对整数 (xi,vi)(x_i, v_i),表示我们会将第 xix_i 根柱子的高度增加 viv_i

在每次修改之后,回答以下询问:如果下了一场大雨,雨水填满了柱状图上的每个坑洼,求这张柱状图中可以留存多少雨水。

更正式地,给定长度为 nn 的整数序列 a1,a2,,ana_1, a_2, \cdots, a_n,第 ii 次修改会将 axia_{x_i} 的值增加 viv_i。在每次修改之后,回答以下询问:令 fi=max(a1,a2,,ai)f_i = \max(a_1, a_2, \cdots, a_i) 以及 gi=max(ai,ai+1,,an)g_i = \max(a_i, a_{i + 1}, \cdots, a_n),计算

$$\sum\limits_{i = 1}^n \left( \min(f_i, g_i) - a_i \right) $$

输入格式

有多组测试数据。第一行输入一个整数 TT 表示测试数据组数,对于每组测试数据:

第一行输入一个整数 nn1n1051 \le n \le 10^5)表示柱状图中柱子的数量。

第二行输入 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n1ai1061 \le a_i \le 10^6),其中 aia_i 表示第 ii 根柱子的初始高度。

第三行输入一个整数 qq1q1051 \le q \le 10^5)表示修改的次数。

对于接下来 qq 行,第 ii 行输入两个整数 xix_iviv_i1xin1 \le x_i \le n1vi1061 \le v_i \le 10^6)表示第 ii 次修改将第 xix_i 根柱子的高度增加了 viv_i

保证所有数据 nn 之和与 qq 之和均不超过 10610^6

输出格式

每次修改输出一行一个整数表示柱状图中可以留存多少雨水。

2
6
1 2 3 4 5 6
2
1 2
3 3
5
100 10 1 10 100
1
3 100
1
4
180