#include<bits/stdc++.h>
#define N 2001000
#define int long long
#define mod 1000000007
using namespace std;
int n,k,l,r;
int dp[N][15],f[N][15];
signed a[N];
int ans=0,maxn;
signed main()
{
cin>>n>>k>>l>>r;
for(int i=1;i<=n;i++) {cin>>a[i];}
sort(a+1,a+1+n);
for(int i=1;i<=n;i++) dp[i][1]=1;
for(int i=1;i<=n;i++) f[i][1]=a[i];
for(int i=1;i<=k;i++)
{
for(int j=1;j<=n;j++)
{
for(int p=1;p<=n;p++)
{
if(a[p]*l<=a[j]&&a[p]*r>=a[j])
{
dp[j][i]+=dp[p][i-1];
f[j][i]=max(f[j][i],f[p][i-1]+a[j]);
}
}
}
}
for(int i=k;i<=n;i++) ans+=dp[i][k];
for(int i=0;i<=n;i++) maxn=max(f[i][k],maxn);
if(ans==0)
{
cout<<"0"<<endl<<"0";
return 0;
}
cout<<ans%mod<<endl<<maxn%mod;
return 0;
}
本来想写40部分分,但只有30pts。。。
玄关求条