#P1606. Destroying Array

Destroying Array

题目描述

给你一个由 nn 个非负整数组成的数列 a1a_1a2a_2\cdotsana_n

你将要一个一个摧毁这个数列中的数。并且,现在给你一个由 11nn 组成的序列来告诉你每个数被摧毁的时间顺序。

每当一个元素被摧毁时,你需要找到这个当前数列中的未被摧毁的数组成的和最大的连续子序列,另外,如果当前剩余的序列是空的的话,最大和就是 00

输入格式

第一行包含一个整数 n (1n100000)n\ (1\le n\le 100000),代表数列的长度。

第二行包含 nn 个整数 a1a_1a2a_2\cdotsana_n (0ai109)(0\le a_i\le 10^9)

第三行包含一个由 11nn 的整数组成的序列,代表数被摧毁的顺序。

输出格式

输出有 nn 行,第 ii 行包含一个整数 —— 在第 ii 个操作已经执行完之后,数列中连续的最大和。

4
1 3 2 5
3 4 1 2
5
4
3
0
  1. 第三个数被删除了,现在的数列是 1 3 x 555 由一个数 55 组成。
  2. 第四个数被删除了,现在的数列是 1 3 x x44 由两个数 1133 组成。
  3. 第一个数被删除了,现在的数列是 x 3 x x33 由一个数 33 组成。
  4. 最后一个剩下的数被删除了,所以答案是 00
5
1 2 3 4 5
4 2 3 5 1
6
5
5
1
0
8
5 5 4 4 6 6 5 5
5 2 8 7 1 3 4 6
18
16
11
8
8
6
6
0