```cpp
#include<bits/stdc++.h>
using namespace std;
#define ll 50010
int n,res,d,l,a[ll],sp[ll],ans,minn[ll],tot;
bool cmp(int p,int q)
{
return (p>q);
}
//priority_queue<int,vector<int>,greater<int> > p;
int main()
{
cin>>n>>res>>d>>l;
for (int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if (a[i]<l) a[i]=0;
}
sort(a+1,a+n+1);
for (int i=1;i<=n;i++)
{
for (int j=1;j<=res;j++)
{
if (minn[j]-d>=l)
{
minn[j]=min(minn[j]-d,a[i]);
ans++; res--;
break;
}
else
{
if (res>0) {minn[++tot]=a[i];ans++;res--;break;}
}
}
}
cout<<ans;
}
```
by lucky0218 @ 2018-05-08 16:33:27