#include <bits/stdc++.h>
int best;
int N, A, B, C, *D;
void topping(int cal, int top, int num, int i) {
  int total = (cal + top) / (A + B * num);
  if (total > best) {
    best = total;
  }
  int j = i + 1;
  if (j < N) {
    for (; j < N; j++) {
      topping(cal + top, D[j], num + 1, j);
    }
  }
}
int main() {
  scanf("%d %d %d %d", &N, &A, &B, &C);
  int i, j, max = 0;
  D = (int *)calloc(N, sizeof(int));
  for (i = 0; i < N; i++) {
    scanf("%d", &D[i]);
  }
  best = C / A;
  for (i = 0; i < N; i++) {
    topping(C, D[i], 1, i);
  }
  printf("%d\n", best);
  free(D);
  return 0;
}
