#include <bits/stdc++.h>
using namespace std;
inline int toInt(string s) {
  int v;
  istringstream sin(s);
  sin >> v;
  return v;
}
template <class T>
inline string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
int k[1000000];
bool judge(int l, int r, int m, int m1, int m2) {
  if (m1 < m2) swap(m1, m2);
  if (m2 * l - 2 * m1 * r < -2 * m) return false;
  return true;
}
int main() {
  int n, l, m, r, s = 0;
  cin >> n >> l >> m >> r;
  for (int i = (0); i < (n); ++i) {
    scanf("%d", &k[i]);
    s += k[i];
  }
  int ts = 0;
  for (int i = (0); i < (n); ++i) {
    ts += k[i];
    if (ts * 2 > s) {
      if (judge(l, r, m, ts, s - ts) ||
          judge(l, r, m, ts - k[i], s - ts + k[i]))
        cout << "YES" << endl;
      else
        cout << "NO" << endl;
      break;
    }
  }
  return 0;
}
