n, a, b, x, y = map(int,input().split()) h = list(map(int,input().split())) def solve(n, a, b, x, y, h): h.sort() from collections import deque import heapq ope_list = [] h2 = [] for i in range(n): heapq.heappush(h2, (- h[i], i)) for i in range(a): now, nowi = heapq.heappop(h2) now = min(0, now + x) heapq.heappush(h2, (now, nowi)) ope_list.append(nowi) def check(k): h2 = [0] * n for i in range(n): h2[i] = max(0, h[i] - k) for i in range(a): h2[ope_list[i]] = max(0, h2[ope_list[i]] - x) if sum(h2) <= b * y: return True else: return False ok = 10 ** 9 ng = -1 while abs(ok - ng) > 1: mid = (ok + ng) // 2 if check(mid): ok = mid else: ng = mid return ok print(solve(n, a, b, x, y, h))