#include <bits/stdc++.h>
using namespace std;
long long n, l, m, r;
long long wei[100000];
bool dfs(long long ll, long long rr, int num) {
  if (num == n) return true;
  if (abs(ll + r * wei[num] - rr) <= m) {
    if (dfs(max(0LL, ll + r * wei[num] - rr), max(0LL, rr - ll - r * wei[num]),
            num + 1))
      return true;
  }
  if (abs(rr + r * wei[num] - ll) <= m) {
    if (dfs(max(0LL, ll - r * wei[num] - rr), max(0LL, rr - ll + r * wei[num]),
            num + 1))
      return true;
  }
  return false;
}
int main() {
  scanf("%lld%lld%lld%lld", &n, &l, &m, &r);
  for (int i = 0; i < n; ++i) scanf("%lld", wei + i);
  if (r * 2 >= l) {
    printf("No\n");
    return 0;
  }
  r *= 2;
  m *= 2;
  if (dfs(0, 0, 0))
    printf("Yes\n");
  else
    printf("No\n");
  return 0;
}
