n, k, x, y = read_line.split.map &.to_i64 a = read_line.split.map &.to_i64 b = a.map { |i| (i + k - 2)//k }.sort cul = [0_i64]*(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] + (cul[i + 1] - b[i]*(n - 1 - i))*x }