暴力dfs
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010;
int a[N];
int n,l,r,x;
int cnt;
void dfs(int i,int w,int mi,int mx)
{
if(i==n+1)
{
if(w>=l && w<=r && mx-mi>=x && mi!=0x3f3f3f3f && mx!=0) cnt++;
return;
}
dfs(i+1,w+a[i],min(mi,a[i]),max(mx,a[i]));
dfs(i+1,w,mi,mx);
}
int main()
{
scanf("%d%d%d%d",&n,&l,&r,&x);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
dfs(1,0,0x3f3f3f3f,0);
printf("%d",cnt);
}