母函数。
代码:
#include<iostream>
#include<fstream>
using namespace std;
int t,n,s,b;
int dp[100001];
int a[1001];
void read(){
// ifstream cin("in.txt");
int i,j,k,right,end;
cin>>t>>n>>s>>b;
for(i=1;i<=n;i++)
{
cin>>j;
a[j]++;
}
right=0;
dp[0]=1;
for(i=1;i<=t;i++)
{
end=right;
for(j=end;j>=0;j--)
if(dp[j]>0)
{
k=a[i];
while(j+k>b) k--;
for(;k>=1;k--)
{
dp[j+k]+=dp[j];
dp[j+k]%=1000000;
if(j+k<=b&&j+k>right) right=j+k;
}
}
}
j=0;
for(i=s;i<=b;i++)
{
j+=dp[i];
j%=1000000;
}
cout<<j<<endl;
}
int main(){
read();
return 0;
}