#12845. 你没见过的前缀和

你没见过的前缀和

题目描述

对于数组 a=(a1,a2,...,an)a = (a_1, a_2, ..., a_n)f(a)f(a) 函数定义为进行完以下操作后数组 aa 的元素和。

i = 1, 2, 3, ..., k 的顺序进行以下操作:

aia_i 加上当前 aa 数组的最大值。

现在给定长度为 N 的数组 a=(a1,a2,...,aN)a = (a_1, a_2, ..., a_N),分别计算 aa 的子数组 Ai=(a1,a2,...,ai)A_i = (a_1, a_2, ..., a_i)f(Ai)f(A_i) 的函数值

输入

第一行为 N (1N105)(1 \leqslant N \leqslant 10^5)

第二行有 N 个数,给出数组 aa (1ai109)(1 \leqslant a_i \leqslant 10^9)

输出

每一行输出一个数 f(Ai)f(A_i)

样例

输入:

3
1 2 3

输出:

2
8
19

样例解释

对于 aa 的子数组 A3A_3f(A3)f(A_3) 的计算过程如下:

s1. 首先对于 i = 1,现在的最大值为 3,则 a1 = 1 + 3,数组变为 A3 = (4, 2, 3)

s2. 然后对于 i = 2,现在的最大值为 4,则 a2 = 2 + 4,数组变为 A3 = (4, 6, 3)

s3. 最后对于 i = 3,现在的最大值为 6,则 a3 = 3 + 6,数组变为 A3 = (4, 6, 9)

最后的 f(A3)=4+6+9=19f(A_3) = 4 + 6 + 9 = 19