#include<iostream>

using namespace std;

#define int long long

int pos[123][42345];
int O=20000;

signed main(){
  int N,L,M,R;
  cin>>N>>L>>M>>R;
  pos[0][O]=1;
  bool can[123]={};
  for(int i=0;i<N;i++){
    int m;
    cin>>m;
    int mx=2*M;
    for(int j=-mx;j<=mx;j++){
      if(pos[i][j+O]){
	int lh=j-2*R*m;
	if(-mx<=lh){
	  pos[i+1][O+max(-mx,j-L*m)]++;
	  pos[i+1][O+lh+1]--;
	}
	int hl=j+2*R*m;
	if(hl<=mx){
	  pos[i+1][O+hl]++;
	  int hh=j+L*m;
	  if(hh+1<=mx){
	    pos[i+1][O+hh+1]--;
	  }
	}
      }
    }
    can[i+1]=pos[i+1][-mx+O];
    for(int j=-mx+1+O;j<=mx+O;j++){
      pos[i+1][j]+=pos[i+1][j-1];
      can[i+1]|=pos[i+1][j];
    }
  }
  cout<<(can[N]?"Yes":"No")<<endl;
}