#include <bits/stdc++.h>
using namespace std;
int main() {
  while (true) {
    int n, l, r;
    long long int m;
    vector<int> ws;
    if (scanf("%d%d%lld%d", &n, &l, &m, &r) != 4) break;
    ws.resize(n);
    for (int i = 0; i < n; ++i) scanf("%d", &ws[i]);
    const int lx1 = -l;
    const int lx2 = -r * 2;
    const int rx1 = r * 2;
    const int rx2 = l;
    long long int lw = 0, rw = 0;
    bool ok = false;
    for (const int w : ws) lw += w;
    for (int i = 0; i <= n; ++i) {
      const bool lf1 = lw * lx1 + rw * rx1 < -m * 2;
      const bool rf1 = lw * lx1 + rw * rx1 > m * 2;
      const bool lf2 = lw * lx2 + rw * rx2 < -m * 2;
      const bool rf2 = lw * lx2 + rw * rx2 > m * 2;
      if (!(lf1 && lf2) && !(rf1 && rf2)) {
        ok = true;
      }
      if (i < n) {
        lw -= ws[n - 1 - i];
        rw += ws[n - 1 - i];
      }
    }
    printf("%s\n", ok ? "Yes" : "No");
  }
  return 0;
}
