#include <bits/stdc++.h>
using namespace std;
int maxn;
int kv, tv;
int kc;
vector<int> tc;
int dp[101][101];
int main(void) {
  cin >> maxn;
  cin >> kv >> tv;
  cin >> kc;
  for (int i = 0; i < maxn; ++i) {
    int a;
    cin >> a;
    tc.push_back(a);
  }
  memset(dp, -1, sizeof(dp));
  dp[0][0] = 0;
  for (int t = 0; t < tc.size(); ++t) {
    for (int i = 0; i < 101; ++i) {
      int now = t;
      if (dp[now][i] == -1) continue;
      if (dp[now + 1][i] < dp[now][i]) dp[now + 1][i] = dp[now][i];
      if (dp[now + 1][i + 1] < dp[now][i] + tc[t])
        dp[now + 1][i + 1] = dp[now][i] + tc[t];
    }
  }
  double max = -1;
  int d = tc.size();
  for (int i = 0; i < 101; ++i) {
    if (max < (double)(kc + dp[d][i]) / (double)(i * tv + kv))
      max = (double)(kc + dp[d][i]) / (double)(i * tv + kv);
  }
  cout << (int)max << endl;
  return 0;
}
