loj#P4767. 「ROIR 2025 Day1」酸雨

「ROIR 2025 Day1」酸雨

题目描述

译自 ROI Regional 2025 Day1 T3. Кислотные дожди

为了在金星上建造实验室定居点,运送了 nn 个模块。这些模块按顺序排列,第 ii 个模块的高度为 hih_i

组装将由一个特殊的机器人完成。在组装过程中,连续的模块段将逐渐合并,而模块的顺序不会改变。

最初,每个模块都是一个独立的段,这些段按从 11nn 的顺序编号。如果有两个相邻的段由模块组成:段 A=[i,i+1,,i+p1]A = [i, i+1, \ldots, i+p-1] 和段 B=[i+p,i+p+1,,i+p+q1]B = [i+p, i+p+1, \ldots, i+p+q-1],那么它们合并后得到段 $AB = [i, i+1, \ldots, i+p-1, i+p, i+p+1, \ldots, i+p+q-1]$。

组装说明由 n1n-1 条指令组成。每条指令由一个数字 kjk_j 表示。执行此指令后,编号为 kjk_jkj+1k_j + 1 的段合并为一个段,合并后的段占据原来两个段的位置,并重新对段进行编号,编号从 kj+2k_j + 2 开始递减 11。执行完所有指令后,所有段将合并为一个段。

在金星上常年下酸雨,因此在组装过程中,了解每个模块段可以积聚多少液体非常重要。假设段由高度为 hl,hl+1,,hrh_l, h_{l+1}, \ldots, h_r 的模块组成。对于 pp,其中 lprl \le p \le r,我们定义该段中高度为 hph_p 的模块的深度如下。计算 lp=max{hl,,hp}l_p = \max \{ h_l, \ldots, h_p \}rp=max{hp,,hr}r_p = \max \{ h_p, \ldots, h_r\},这是段中pp左侧和右侧的最高模块。然后,段中模块 pp 的深度为 dp=min(lp,rp)hpd_p = \min(l_p, r_p) - h_p,注意 dp0d_p \ge 0容量指的是该段所有模块深度的总和,即 w=dl+dl+1++drw = d_l + d_{l+1} + \ldots + d_r

给定一系列段合并指令。每次合并后输出合并段的容量。

输入格式

第一行包含一个整数 nn (2n105)(2 \leq n \leq 10^5),表示模块的数量 。

第二行包含 nn 个整数 h1,,hnh_1, \ldots, h_n (1hi109)(1 \leq h_i \leq 10^9)

第三行包含 n1n - 1 个整数,表示段合并指令。每条指令由一个整数 kjk_j (1kjnj)(1 \leq k_j \leq n - j) 表示。

输出格式

输出 n1n-1 个整数,每次合并后输出合并段的容量。

8
9 1 8 1 5 2 3 6
3 3 1 3 3 2 1

0
4
0
0
0
13
20

下图显示了样例中指令执行的过程,每个模块上方标出了其深度,并显示了新段的容量。

acid.png

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制 子任务依赖
11 1313 n100n \le 100
22 1313 n1000n \le 1000 11
33 1313 hi10h_i \leq 10
44 1313 对于某些 iih1hihnh_1 \geq \ldots \geq h_i \leq \ldots \leq h_n
55 77 在所有查询中 kj=1k_j = 1
66 1313 n4104n \leq 4 \cdot 10^4 1,21, 2
77 2828 161\sim 6