#include<stdio.h>
int n,x,mx; long long s,t;
int main() {
	scanf("%d",&n);
	for (int i=1; i<=n; ++i)
		scanf("%d",&x),s+=x,t+=s,mx<x&&(mx=x),
		printf("%lld\n",t+1ll*i*mx);
	return 0;
}
#include <iostream>
#include <string>
#include <vector>
#include <functional>
#include <numeric>
#include <algorithm>
using namespace std;
#define rep(i,n)  for(int i=0 ; i<(n) ; ++i)
typedef long long ll;
typedef pair<int,int> p;
const int INF = 1001001001;

int main(){
  ll N;
  cin >> N;
  ll A[N];
  rep(i,N) cin >> A[i];

  //最大値をiに足したら、次はそのiが最大値になる
  //答えはk*a1+(k-1)*a2+...a_k + k*a_max。
  //dpと、dpの和を記録していく
  ll dp[N],sum[N],MAX;
  dp[0] = A[0];
  sum[0] = dp[0];
  MAX = A[0];
  cout << sum[0]*2 << endl;
  for(int i=1 ; i<N ; ++i){
    MAX = max(MAX,A[i]);
    dp[i] = dp[i-1] + A[i];
    sum[i] = sum[i-1] + dp[i];
    cout << sum[i] + (i+1)*MAX << endl;
  }
  return 0;
}