require "big"
n, k, x, y = read_line.split.map &.to_big_i
a = read_line.split.map &.to_big_i
b = a.map { |i| (i + k - 2)//k }.sort
cul = [0.to_big_i] * (n + 1)
n.pred.downto(0) do |i|
  cul[i] = cul[i + 1] + b[i]
end

y = x * n if y > x * n
puts n.times.to_a.min_of { |i|
  y * b[i] + x * (cul[i + 1] - b[i] * (n - 1 - i))
}