#include #include #include using namespace std; int main() { int N, T, X, Y; cin >> N >> T >> X >> Y; vector D(N); for(int i = 0; i < N; i++) { cin >> D[i]; } sort(D.begin(), D.end()); D.emplace_back(D.back() + T + 5); vector section_counts; int cnt = 0; for(int i = 0; i < N; i++) { cnt++; if(D[i + 1] - D[i] > T) { section_counts.emplace_back(cnt); cnt = 0; } } sort(section_counts.begin(), section_counts.end(), greater()); section_counts.emplace_back(0); int si = 1; int need = section_counts.front(); long long ans = 0; for(int k = 1; k <= N; k++) { if(k > need) { ans += min(X, Y); need += section_counts[si++]; } cout << ans << " \n"[k == N]; } return 0; }