def ceildiv(a: int, b: int) -> int: return (a + b - 1) // b N, K, X, Y = map(int, input().split()) A = list(map(int, input().split())) def f(): xs = sorted([ceildiv(a-1, K) for a in A]) res = 0 while len(xs) > 0: # ベホイミのコスト c1 = X * len(xs) # ベホマラーのコスト c2 = Y cost = min(c1, c2) ys = [] t = xs[0] res += cost * t for x in xs: y = x - t if y > 0: ys.append(y) xs = ys return res ans = f() print(ans) # ベホイミ