#include <bits/stdc++.h>
using std::vector;
const double EPS = 1e-9;
vector<long long> v;
int n;
long long m, L, R;
long long sumA, sumB;
bool check() {
  if (R * 2 > L) return 0;
  for (vector<long long>::iterator it = v.begin(); it != v.end(); it++) {
    if (llabs(sumA - sumB) * R <= m) return 1;
    long long AL = sumA * R * 2, AR = sumA * L;
    long long BL = sumB * R * 2, BR = sumB * L;
    if (AR < BL || AL > BR) {
      long long tmp = std::min(llabs(AL - BR), llabs(BL - AR));
      if (tmp <= 2 * m) return 1;
    } else
      return 1;
    sumA += *it;
    sumB -= *it;
  }
  return 0;
}
int main() {
  scanf("%d", &n);
  scanf("%lld%lld%lld", &L, &m, &R);
  sumA = sumB = 0;
  v.clear();
  for (int i = 1; i <= n; i++) {
    long long x;
    scanf("%lld", &x);
    sumB += x;
    v.push_back(x);
  }
  if (n == 0 || check())
    puts("Yes");
  else
    puts("No");
  return 0;
}
