问题描述
对于一个序列 a=(a1,a2,a3,…,ak),定义 f(a) 为进行以下操作后其元素之和:
- 对于每个 i=1,2,3,…,k,按顺序执行以下操作:将 a 中的当前最大值加到 ai 上。
给定一个长度为 N 的序列:A=(A1,A2,A3,…,AN)。对于 1≤k≤N 的每个整数,求当 a=(A1,A2,A3,…,Ak) 时的 f(a)。
约束条件
- 1≤N≤2×105
- 1≤Ai≤107
- 输入中的所有值都是整数。
输入
输入从标准输入中按以下格式给出:
N
A1 A2 A3 … AN
输出
输出结果共 N 行。第 k 行应该包含当 a=(A1,A2,A3,…,Ak) 时的 f(a)。
示例输入 1
3
1 2 3
示例输出 1
2
8
19
例如,当 a=(A1,A2,A3) 时,f(a) 的计算过程如下:
- 首先,对于 i=1,将 a 中的当前最大值 3 加到 a1 上得到 a=(4,2,3)。
- 接下来,对于 i=2,将 a 中的当前最大值 4 加到 a2 上得到 a=(4,6,3)。
- 最后,对于 i=3,将 a 中的当前最大值 6 加到 a3 上得到 a=(4,6,9)。
- 现在,f(a) 即为 a 中元素的和,即 19。