题目描述
译自 ROI Regional 2025 Day1 T3. Кислотные дожди
为了在金星上建造实验室定居点,运送了 n 个模块。这些模块按顺序排列,第 i 个模块的高度为 hi。
组装将由一个特殊的机器人完成。在组装过程中,连续的模块段将逐渐合并,而模块的顺序不会改变。
最初,每个模块都是一个独立的段,这些段按从 1 到 n 的顺序编号。如果有两个相邻的段由模块组成:段 A=[i,i+1,…,i+p−1] 和段 B=[i+p,i+p+1,…,i+p+q−1],那么它们合并后得到段 $AB = [i, i+1, \ldots, i+p-1, i+p, i+p+1, \ldots, i+p+q-1]$。
组装说明由 n−1 条指令组成。每条指令由一个数字 kj 表示。执行此指令后,编号为 kj 和 kj+1 的段合并为一个段,合并后的段占据原来两个段的位置,并重新对段进行编号,编号从 kj+2 开始递减 1。执行完所有指令后,所有段将合并为一个段。
在金星上常年下酸雨,因此在组装过程中,了解每个模块段可以积聚多少液体非常重要。假设段由高度为 hl,hl+1,…,hr 的模块组成。对于 p,其中 l≤p≤r,我们定义该段中高度为 hp 的模块的深度如下。计算 lp=max{hl,…,hp} 和 rp=max{hp,…,hr},这是段中p左侧和右侧的最高模块。然后,段中模块 p 的深度为 dp=min(lp,rp)−hp,注意 dp≥0。容量指的是该段所有模块深度的总和,即 w=dl+dl+1+…+dr。
给定一系列段合并指令。每次合并后输出合并段的容量。
输入格式
第一行包含一个整数 n (2≤n≤105),表示模块的数量 。
第二行包含 n 个整数 h1,…,hn (1≤hi≤109)。
第三行包含 n−1 个整数,表示段合并指令。每条指令由一个整数 kj (1≤kj≤n−j) 表示。
输出格式
输出 n−1 个整数,每次合并后输出合并段的容量。
8
9 1 8 1 5 2 3 6
3 3 1 3 3 2 1
0
4
0
0
0
13
20
下图显示了样例中指令执行的过程,每个模块上方标出了其深度,并显示了新段的容量。

数据范围与提示
详细子任务附加限制及分值如下表所示。
子任务 |
分值 |
附加限制 |
子任务依赖 |
1 |
13 |
n≤100 |
|
2 |
13 |
n≤1000 |
1 |
3 |
13 |
hi≤10 |
|
4 |
13 |
对于某些 i,h1≥…≥hi≤…≤hn |
5 |
7 |
在所有查询中 kj=1 |
6 |
13 |
n≤4⋅104 |
1,2 |
7 |
28 |
无 |
1∼6 |