atcoder#ARC120A. [ARC120A] Max Add

[ARC120A] Max Add

配点 : 400400

問題文

数列 a=(a1,a2,a3,,ak)a = (a_1, a_2, a_3, \dots, a_k) に対して、f(a)f(a) を、以下の操作を行った後の aa の要素の総和と定義します。

  • i=1,2,3,,ki = 1, 2, 3, \dots, k の順に以下の操作を行う : 現在の aa の要素の最大値を aia_i に足す

長さ NN の数列 A=(A1,A2,A3,,AN)A = (A_1, A_2, A_3, \dots, A_N) が与えられます。 11 以上 NN 以下の各整数 kk について、a=(A1,A2,A3,,Ak)a = (A_1, A_2, A_3, \dots, A_k) としたときの f(a)f(a) を求めてください。

制約

  • 1N2×1051 \le N \le 2 \times 10^5
  • 1Ai1071 \le A_i \le 10^7
  • 入力に含まれる値は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN

A1A_1 A2A_2 A3A_3 \dots 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

例えば a=(A1,A2,A3)a = (A_1, A_2, A_3) のときの f(a)f(a) は以下のように計算されます。

  • まず i=1i = 1 として、現在の aa の最大値である 33a1a_1 に足す。a=(4,2,3)a = (4, 2, 3) となる。
  • 次に i=2i = 2 として、現在の aa の最大値である 44a2a_2 に足す。a=(4,6,3)a = (4, 6, 3) となる。
  • 最後に i=3i = 3 として、現在の aa の最大値である 66a3a_3 に足す。a=(4,6,9)a = (4, 6, 9) となる。
  • 操作後の aa の総和である 1919f(a)f(a) の値である。