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)) }