N,K,X,Y = map(int, input().split()) A = [int(a) for a in input().split()] for i in range(N): if (A[i]-1)%K == 0: A[i] = (A[i]-1)//K else: A[i] = (A[i]-1)//K+1 A.sort() ans = 0 import bisect cnt = 0 idx = bisect.bisect_right(A, cnt) while idx < N: if (N-idx)*X > Y: ans += Y*(A[idx]-cnt) cnt = A[idx] idx = bisect.bisect_right(A, cnt) else: for i in range(idx, N): ans += X*(A[i]-cnt) break print(ans)