import heapq N,A,B,X,Y = map(int,input().split()) H = sorted(list(map(int,input().split())),reverse=True) S = sum(H) high = max(H) low = -1 while high-low>1: mid = (high+low)//2 if SA*X+B*Y: low = mid continue heap = [-max(0,H[i]-mid) for i in range(N)] for _ in range(A): h = -heapq.heappop(heap) h = max(0,h-X) heapq.heappush(heap,-h) if -sum(heap)<=B*Y: high = mid else: low = mid print(high)