#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { #define int long long long long n, k, x, y; cin >> n >> k >> x >> y; vector vec; for (int i = 0; i < n; i++) { long long a; cin >> a; a--; if (a != 0) { vec.emplace_back((a + k - 1) / k); } } long long z; if (vec.empty()) { cout << "0" << endl; return 0; } sort(vec.begin(), vec.end()); for (int i = n; i >= 0; i--) { if (y > x * i) { z = i; break; } } long long ans = 0; long long o; if (n - z - 1 != -1) { ans += vec[n - z - 1] * y; o = vec[n - z - 1]; } else { o = 0; } for (int i = n - z; i < n; i++) { ans += (vec[i] - o) * x; } cout << ans << endl; return 0; }