#include <cstdio>
#include <algorithm>

using std::min;
using std::sort;

const int MAXN=100011;

int N;

struct Pair{
	int p, v;
} P[MAXN];

inline bool operator < (const Pair &A, const Pair &B){
	return (A.v==B.v)?(A.p<B.p):(A.v<B.v);
}

int Minp[MAXN];

long long Ans[MAXN];

int main(){
	
	scanf("%d", &N);
	
	for(int i=1;i<=N;++i){
		P[i].p=i;
		scanf("%d", &P[i].v);
	}
	
	sort(P+1, P+N+1);
	
	Minp[N]=P[N].p;
	for(int i=N;i>1;--i)	Minp[i-1]=min(Minp[i], P[i-1].p);
	
	for(int i=N;i>=1;--i){
		if(P[i].v!=P[i-1].v){
			Ans[Minp[i]]+=1LL*(P[i].v-P[i-1].v)*(N-i+1);
		}
	}
	
	for(int i=1;i<=N;++i)	printf("%lld\n", Ans[i]);
	
	return 0;
}