#include <bits/stdc++.h>
using namespace std;
const int MAX_B = 1001;
typedef struct {
  int price;
  int cal;
} Top;
typedef struct {
  int max;
  int sumc;
  int sump;
} Status;
int numtop, price;
int maxave = 0;
Top base;
int item[MAX_B];
int solve() {
  maxave = base.cal / base.price;
  queue<Status> Q;
  Status f;
  f.max = 0;
  f.sumc = base.cal;
  f.sump = base.price;
  Q.push(f);
  while (!Q.empty()) {
    Status now = Q.front();
    Q.pop();
    if (maxave < now.sumc / now.sump) maxave = now.sumc / now.sump;
    if (now.sumc / now.sump < base.cal / base.price) continue;
    for (int i = now.max + 1; i <= numtop; i++) {
      Status tmp = now;
      tmp.max = i;
      tmp.sumc += item[i];
      tmp.sump += price;
      if (tmp.sumc / tmp.sump > now.sumc / now.sump) Q.push(tmp);
    }
  }
  return maxave;
}
int main() {
  cin >> numtop;
  cin >> base.price >> price;
  cin >> base.cal;
  for (int i = 1; i <= numtop; i++) {
    cin >> item[i];
  }
  cout << solve() << endl;
  return 0;
}
