#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <queue>
#include <cstring>
typedef long long ll;
using namespace std;
int n;
ll l,m,r;
ll a[1000010];
bool dfs(int step,ll mn,ll mx) {
    if(step == n) return true;
    if(mn + r * a[step] <= m) {
        if( dfs(step+ 1 , mn + r *a[step] , min(mx + a[step] *l ,m) )) return true;
    }
    if(mx - r *a[step] >= -m){
        if(dfs(step+ 1, max(mn - a[step] * l , -m) , mx - r *a[step])) return true;
    }
    return false;
}
void solve(){
    cin>>n>>l>>m>>r;
    if( 2 * r > l) {
        cout<<"No\n";
        return ;
    }
    for(int i = 0; i <n ;++i) {
        cin>>a[i];
    }
    r *= 2;m *= 2;
    if(dfs(0 , 0 ,0)){
        cout<<"Yes\n";
    }
    else cout<<"No\n";

}
int main(){
    //freopen("input.txt","r",stdin);
    solve();
    return 0;
}