#YHW1505. 擦除序列

擦除序列

擦除序列

题目描述

黑板上初始有 nn 个数字,小爱依次擦除其中的数字,直到所有数字擦完。每擦除一个数字后,需要找出剩余未擦除数字中最大连续子段的和(选择最大连续子段和时,不能包含任何已擦除位置对应的数字)。

输入格式

  1. 第一行输入一个正整数 nn,表示黑板上原有数字的个数。
  2. 第二行输入 nn 个正整数 a1,a2,,ana_1,a_2,\cdots,a_n,分别表示原序列中每个数字的值。
  3. 第三行输入 nn 个正整数 p1,p2,,pnp_1,p_2,\cdots,p_n,表示每次被擦除数字在原序列中的位置。

输出格式

输出 nn 个数字,以空格隔开,分别表示每一轮擦除操作后,剩下数字中最大子段和的值。

数据范围

  • 对于 30% 的数据,1n1021 \leq n \leq 10^2
  • 对于 60% 的数据,1n1041 \leq n \leq 10^4
  • 对于 100% 的数据,1n1051 \leq n \leq 10^5 ,且 1ai1091 \leq a_i \leq 10^9

输入输出样例

输入样例

5
1 2 3 4 5
3 5 2 4 1

输出样例

9 4 4 1 0

样例说明

  • 第1轮:删除第3个数字,得到 1 2 X 4 5,此时最大子段和为 4+5=94 + 5 = 9
  • 第2轮:删除第5个数字,得到 1 2 X 4 X,此时最大子段和为 4 。
  • 第3轮:删除第2个数字,得到 1 X X 4 X,此时最大子段和为 4 。
  • 第4轮:删除第4个数字,得到 1 X X X X,此时最大子段和为 1 。
  • 第5轮:删除第1个数字,得到 X X X X X,此时最大子段和为 0 。