N, T, X, Y = map(int, input().split()) D = list(map(int, input().split())) D.sort() sz = [] l = 0 for r in range(1, N): if D[r] - D[r - 1] > T: sz.append(r - l) l = r sz.append(N - l) sz.sort() ans = [] s = sz.pop() res = 0 for i in range(1, N + 1): if s < i: s += sz.pop() res += min(X, Y) ans.append(res) print(*ans)