#include <stdio.h>
int getMax(int [], int); //배열중 최대값의 인덱스를 반환
int main(){
int kot[101]; //토핑의 종류 100가지, 101번째는 도우의 칼로리
int a, b, n;
scanf("%d %d %d %d", &n, &a, &b, &kot[101]);
for(int i=0; i<n; i++) scanf("%d", &kot[i]);
int SumOfKal = kot[101]; //토핑을 얹어놓지 않은경우
int DolPerKal = SumOfKal / a;
//n개의 토핑 중 높은 칼로리 순으로 추가 한 경우와 비교
for(int i = 1;i <= n ; i++){
int tmp = DolPerKal;
SumOfKal += kot[getMax(kot, n)];
DolPerKal = sumOfKal / (a + (i * b)); //달러 당 열량의 수
if(tmp > DolPerKal){
DolPerKal = tmp; break;
} else{
kot[getMax(kot, n)] = -1;
}
}
printf("%d", DolPerKal);
}
int getMax(int A[], int n){
int max = 0;
for(int i=1;i<n;i++)
if(A[max] < A[i]) max = i;
return max;
}