题意:n门课,第i门难度为c[i],选择至少两门以上,使得总难度在l与r之间,且最高难度与最低难度之差不低于x。求总方案数
注意到n很小,于是想到可以通过状态压缩枚举每种可能。
# -*- coding: utf-8 -*-
n,l,r,x=map(int,raw_input().split())
c=map(int,raw_input().split())
ans=0
for i in xrange(1<<n):
a=[]
for j in xrange(n):
if (i>>j)&1 :
a.append(c[j])
if len(a)>=2 and max(a)-min(a)>=x and sum(a)>=l and sum(a)<=r :
ans+=1
print ans