题目描述
对于一个序列 a=(a1,a2,a3,⋯,ak),让 f(a) 表示在执行以下操作后其元素的总和:
- 对于每个 i=1,2,3,⋯,k,按此顺序执行以下操作:
将 a 中当前的最大值加到 ai 上。
给定一个长度为 N 的序列:A=(A1,A2,A3,⋯,AN)。
对于每个从 1 到 N(包括)的整数 k,当 a=(A1,A2,A3,⋯,Ak) 时,求出 f(a)。
输入格式
输入从标准输入中按以下格式给出:
N
A1 A2 A3 ⋯ AN
输出格式
输出 N 行。第 k 行应包含当 a=(A1,A2,A3,…,Ak) 时的 f(a)。
样例
3
1 2 3
2
8
19
样例1解释
例如,当 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。
数据范围
- 1≤N≤2×105
- 1≤Ai≤107
- 所有输入都是整数。
来源