Removiendo del Arreglo


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 128M

Authors:
Problem type
Allowed languages
Ada, BrainF***, C, C#, C++, Dart, Go, Java, JS, Kotlin, Lua, Pascal, Prolog, Python, Swift, VB

Alex tiene un arreglo de N (1 \le N \le 10^5) números enteros. Sobre este arreglo él puede realizar la siguiente operación: elegir un elemento que no haya sido elegido previamente y marcarlo como no disponible. Alex quiere realizar exactamente N operaciones, hasta que todos los elementos estén marcados.

Alex define el coste de un subarreglo como la suma de todos los elementos de este. Antes de realizar una operación, Alex quiere saber el coste máximo de un subarreglo que no contenga ningún elemento no disponible.

Entrada

La primera línea contiene un único número entero N, la longitud del arreglo.

La segunda línea contiene los N valores del arreglo. Todos los números están en el rango 0..10^9

La tercera línea contiene una permutación de tamaño N, que representa los índices de los elementos elegidos para las operaciones, en orden.

Salida

La salida debe contener N líneas. En cada línea debe aparecer un solo entero, la respuesta antes de cada operación.

Ejemplo de Entrada

5
6 1 2 3 2
2 5 1 4 3

Ejemplo de Salida

14
7
6
5
2

Explicación del ejemplo

Elementos disponibles - Suma máxima - Subarreglo de suma máxima:

11111−14−[1,5]

10111−7−[3,5]

10110−6−[1,1]

00110−5−[3,4]

00100−2−[3,3]

Comments

There are no comments at the moment.