xishengming @ 2024-03-01 21:41:55
#include<bits/stdc++.h>
using namespace std;
int n,l,r,a[1000005],vis[1000005],ans;
int total(int x,int y)
{
int rt=0;
for(int i=x;i<=y;i++)
rt+=a[i];
return rt;
}//计算后面的数的和
void dfs(int sum,int step)
{
if(sum>=l){
if(sum<=r)ans++;
return;
}
for(int i=step;i<=n;i++)
{
if(!vis[i])
{
if(total(i,n)+sum<l)break;//如果加起来都不够就直接跳过
vis[i]=1;
dfs(sum+a[i],i+1);
vis[i]=0;
}
}
}
int main()
{
cin>>n>>l>>r;
for(int i=1;i<=n;i++)
cin>>a[i];
dfs(0,1);
cout<<ans;
return 0;
}