#include <bits/stdc++.h>
using namespace std;
void getToppings(int number);
int NumOfToppings;
int priceOfCrust = 1;
int priceOfTopiings;
int caloryCrust;
int caloryToppings[100];
double bestCalory;
int bestToppings = 0;
int n;
double bestCombo;
double tempCalory;
double tempBest;
int pop_max() {
  for (int i = 0; i < n - 1; i++) {
    if (caloryToppings[i] > caloryToppings[i + 1])
      swap(caloryToppings[i], caloryToppings[i + 1]);
  }
  n--;
  return caloryToppings[n];
}
int main() {
  cin >> NumOfToppings;
  cin >> priceOfCrust;
  cin >> priceOfTopiings;
  cin >> caloryCrust;
  bestCalory = caloryCrust;
  for (int i = 0; i < NumOfToppings; i++) cin >> caloryToppings[i];
  n = NumOfToppings;
  int popedMax = NumOfToppings - n;
  bestCombo = bestCalory / priceOfCrust;
  for (int i = 0; i < NumOfToppings; i++) {
    tempCalory = bestCalory + pop_max();
    tempBest = tempCalory / (priceOfCrust + popedMax * priceOfTopiings);
    if (bestCombo < tempBest) {
      bestCalory = tempCalory;
      bestCombo = tempBest;
    } else
      break;
  }
  int c = (int)bestCombo;
  return c;
}
