Cod sursa(job #636587)
| Utilizator | Data | 19 noiembrie 2011 21:32:18 | |
|---|---|---|---|
| Problema | Zombie | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | .com 2011 | Marime | 0.44 kb |
#include <stdio.h>
#define NMAX 1000005
int d,n,k,A[NMAX],D[NMAX];
inline int min(int x,int y)
{
return x<y ? x : y;
}
int main()
{
freopen("zombie.in","r",stdin);
freopen("zombie.out","w",stdout);
scanf("%d%d%d\n",&d,&n,&k);
int i,poz;
for (i=1; i<=n; i++)
scanf("%d",&A[i]);
poz=1;
for (i=1; i<=n; i++)
{
while (A[i]-(d-1)>A[poz])
poz++;
D[i]=min(D[i-1]+1,D[poz-1]+k);
}
printf("%d\n",D[n]);
return 0;
}
