n, T, X, Y = map(int, input().split()) D = list(map(int, input().split())) D.sort() C = [] row = 0 for i in range(1, n): if D[i] - D[i - 1] <= T: row += 1 else: C.append(row + 1) row = 0 C.append(row + 1) C.sort(reverse=True) ans = [1 << 60] * (n + 1) tot = 0 X = min(X, Y) for i, c in enumerate(C, 0): tot += c ans[tot] = i * X for i in range(n - 1, 0, -1): ans[i] = min(ans[i], ans[i + 1]) print(*ans[1:])