N, T, X, Y = map(int, input().split()) D = list(map(int, input().split())) D.sort() C = [] c = 1 for i in range(1, N): if D[i] - D[i - 1] > T: C.append(c) c = 1 else: c += 1 C.append(c) C.sort() C = C[::-1] S = [0 for _ in range(N + 1)] c = 0 for i in range(len(C)): for j in range(c + 1, c + C[i] + 1): S[j] = i * min(X, Y) c += C[i] print(*S[1:])