誤読

文字通りくそコード

ARC069-E Frequency

はい
実際に書けばわかる

E<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<D


#define int ll
signed main() {
	int n;
	scanf("%lld", &n);
	vector<int> ax;
	map<int, int> ar;
	map<int, int> ac;
	REP(i, n) {
		int a;
		scanf("%lld", &a);
		if(!ar.count(a))
			ar[a] = i;
		else
			ar[a] = min(ar[a], i);
		ac[a]++;
		ax.push_back(a);
	}
	ax.push_back(0);
	sort(ALL(ax));
	ax.erase(unique(ALL(ax)), ax.end());
	sort(ALL(ax),greater<int>());
	vector<int> ans(n);
	int axc = 0;
	auto itr = ar.rbegin();
	for (axc = 0; axc < ax.size()-1; itr++) {
		pii cur = *itr;
		ans[itr->second] += (ax[axc] - ax[axc + 1]) * ac[itr->first];
		ac[ax[axc + 1]]+= ac[ax[axc]];
		ar[ax[axc + 1]] = min(ar[ax[axc + 1]], itr->second);
		axc++;
	}
	REP(i, n) {
		printf("%lld\n", ans[i]);
	}
	return 0;
}