Pagini recente » Cod sursa (job #753611) | Cod sursa (job #673066) | Cod sursa (job #1312671) | Cod sursa (job #188050) | Cod sursa (job #711549)
Cod sursa(job #711549)
#include <fstream>
using namespace std;
#define Nmax 1000011
#define minim(a , b) ((a < b) ? a : b)
#define oo 2000000011
int bst[Nmax];
int kill[Nmax];
int A[Nmax];
int D,N,K;
int main()
{
freopen("zombie.in","r",stdin);
freopen("zombie.out","w",stdout);
scanf("%d%d%d",&D,&N,&K);
for (int i=1;i<=N;++i)
scanf("%d",&A[i]);
A[N+1]=oo;
for (int i=1;i<=N;++i)
{
kill[i]=1;
int poz=i+1;
while (A[poz]-A[i]<D && poz<=N)
{
++kill[i];
++poz;
}
}
for (int i=N;i>0;--i)
bst[i]=minim(bst[i+1]+1,bst[i+kill[i]]+K);
printf("%d\n",bst[1]);
return 0;
}