#include #define rep(i, n) for (int i = 0; i < n; i++) using namespace std; typedef long long ll; int main() { ll N, K, X, Y; cin >> N >> K >> X >> Y; vector A(N); rep(i, N) { cin >> A[i]; A[i]--; } sort(A.begin(), A.end()); int lo = 0, hi = 1e9 + 1; while (lo + 1 < hi) { int mi = (lo + hi) / 2; int i = A.end() - upper_bound(A.begin(), A.end(), mi); //cout << "lo=" << lo << " hi=" << hi << " i=" << i << "\n"; if (X * i < Y) hi = mi; else lo = mi; } //cout << lo << " " << hi << "\n"; ll yn = (lo + K - 1) / K, ans = yn * Y; rep(i, N) { if (A[i] > yn * K) { ans += (A[i] - yn * K + K - 1) / K * X; } } cout << ans << "\n"; }