#P885. 擦除序列

擦除序列

题目描述

黑板上有 nn 个数字,小爱每一次会擦除其中的某个数字,直至所有数字被擦完为止。

每一轮擦除一个数字后,小爱想知道剩下未被擦除的所有数字中,最大连续子段和的值。(在选择最大连续子段和时,不能包含任何被擦除的位置)

输入格式

输入共三行: 第一行:一个正整数nn,表示原有数字个数 第二行:nn个正整数a1,a2,...,ana_1,a_2,...,a_n,分别表示原序列的值 第三行:nn个正整数p1,p2,...,pnp_1,p_2,...,p_n,表示每次被擦除数字的位置

输出格式

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

5
1 2 3 4 5
3 5 2 4 1
9 4 4 1 0

样例解释 1

第1轮:删除第3个数字,得 1 2 X 4 5,此时最大子段和为4+5 第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

数据范围

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