n,k,x,y = map(int,input().split()) a = [int(i)-1 for i in input().split()] low = 0 high = (k-1+max(a))//k def f(num): val = num*y for i in range(n): tmp = (max(0,a[i]-num*k)+k-1)//k val += tmp*x return val #print(low,high) #exit() cnt = 0 while low+1 < high: c1 = int((low*2+high)/3) c2 = int((low+high*2)/3) if f(c1) > f(c2): if low == c1: low += 1 else: low = c1 else: if high == c2: high -= 1 else: high = c2 ans = min(f(high),f(low)) print(ans)