#include using namespace std; #define rep(i, l, r) for (int i = (int)(l); i<(int)(r); i++) #define ll long long ll INF = 4e18; int main() { int N, T; ll X, Y; cin >> N >> T >> X >> Y; vector A(N+1); rep(i, 0, N) cin >> A[i]; A[N] = 2e9; sort(A.begin(), A.end()); vector> R; vector now = {A[0]}; rep(i, 1, N+1) { if (A[i]-now.back() > T) { R.push_back(now); now = {A[i]}; } else { now.push_back(A[i]); } } vector L; for (auto r : R) L.push_back((int)r.size()); sort(L.rbegin(), L.rend()); vector S((int)L.size()+1); S[0] = 0; rep(i, 1, L.size()+1) { S[i] = S[i-1] + L[i-1]; } //S[i] >= k となる最小のiを求める vector ans(N+1); rep(i, 1, N+1) { int x = lower_bound(S.begin(), S.end(), i) - S.begin(); cout << (x-1)*min(X, Y) << " "; } cout << endl; }