#4309. 最大加法(MaxAdd)

最大加法(MaxAdd)

题目描述

对于一个序列 a=(a1,a2,a3,,ak)a = (a_1, a_2, a_3, \cdots, a_k),让 f(a)f(a) 表示在执行以下操作后其元素的总和:

  • 对于每个 i=1,2,3,,ki = 1, 2, 3, \cdots, k,按此顺序执行以下操作:

aa 中当前的最大值加到 aia_i 上。

给定一个长度为 NN 的序列:A=(A1,A2,A3,,AN)A = (A_1, A_2, A_3, \cdots, A_N)
对于每个从 11NN(包括)的整数 kk,当 a=(A1,A2,A3,,Ak)a = (A_1, A_2, A_3, \cdots, A_k) 时,求出 f(a)f(a)

输入格式

输入从标准输入中按以下格式给出:

NN

A1A_1 A2A_2 A3A_3 \cdots ANA_N

输出格式

输出 NN 行。第 kk 行应包含当 a=(A1,A2,A3,,Ak)a = (A_1, A_2, A_3, \dots, A_k) 时的 f(a)f(a)

样例

3
1 2 3
2
8
19

样例1解释

例如,当 a=(A1,A2,A3)a = (A_1, A_2, A_3) 时,f(a)f(a) 的计算如下:

  • 首先,对于 i=1i = 1,将 aa 的当前最大值 3 加到 a1a_1 上,使 a=(4,2,3)a = (4, 2, 3)
  • 接下来,对于 i=2i = 2,将 aa 的当前最大值 4 加到 a2a_2 上,使 a=(4,6,3)a = (4, 6, 3)
  • 最后,对于 i=3i = 3,将 aa 的当前最大值 6 加到 a3a_3 上,使 a=(4,6,9)a = (4, 6, 9)
  • f(a)f(a)aa 现在的元素总和,即 19。

数据范围

  • 1N2×1051 \le N \le 2 \times 10^5
  • 1Ai1071 \le A_i \le 10^7
  • 所有输入都是整数。

来源

  • AtCoder ARC120A