第一次翻译(✿◡‿◡)

回复帖子

@FangHaosb 2018-05-17 00:07 回复

题目描述

给你一个由n个非负整数组成的数列 $a_1$ , $a_2$ ,..., $a_n$ 。

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

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

输入输出格式

输入格式

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

第二行包含n个整数 $a_1$ , $a_2$ ,..., $a_n$ (0 <= $a_i$ <= 10^9)。

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

输出格式

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

说明

第一个样例:

1.第三个数被删除了,现在的数列是 1 3 x 5 ,5由一个数5组成。

2.第四个数被删除了,现在的数列是 1 3 x x ,4由两个数1和3组成。

3.第一个数被删除了,现在的数列是 x 3 x x ,3由一个数3组成。

4.最后一个剩下的数被删除了,现在的数列中没有东西啦,所以答案是0呢!