配点 : 400 点
問題文
数列 a=(a1,a2,a3,…,ak) に対して、f(a) を、以下の操作を行った後の a の要素の総和と定義します。
- i=1,2,3,…,k の順に以下の操作を行う :
現在の a の要素の最大値を ai に足す
長さ N の数列 A=(A1,A2,A3,…,AN) が与えられます。
1 以上 N 以下の各整数 k について、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) を出力せよ。
3
1 2 3
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) となる。
- 操作後の a の総和である 19 が f(a) の値である。