#yukicoder3049 Contest Coordinator def main(): #入力受取 input = __import__('sys').stdin.readline N, T, X, Y = map(int, input().split()) D = sorted(map(int, input().split())) #note: 基本的にはdiff <= T の広義単調増加列を採用したい #なので適当なRLEを行う RLE = [] Lt = 0 for Rt in range(1, N + 1): if Rt == N or D[Rt] - D[Rt - 1] > T: RLE.append(Rt - Lt) Lt = Rt #貪欲でいいと思うけど RLE.sort(reverse = True) cur = cnt = 0 cost = min(X, Y) ans = [0] * N for k in range(1, N + 1): while cur < len(RLE) and cnt < k: cnt += RLE[cur] cur += 1 ans[k - 1] = (cur - 1) * cost print(*ans) main()