Pagini recente » Cod sursa (job #2873392) | Cod sursa (job #373832) | Cod sursa (job #2795661) | Cod sursa (job #239791) | Cod sursa (job #613494)
Cod sursa(job #613494)
Utilizator |
Mr. Noname cezar305 |
Data |
28 septembrie 2011 08:54:37 |
Problema |
Zombie |
Scor |
Ascuns |
Compilator |
cpp |
Status |
done |
Runda |
|
Marime |
0.57 kb |
#include <stdio.h>
int d, n, k;
int sol[1000002], z[1000002];
inline int min (const int &a, const int &b) {return a < b ? a : b;}
int main ()
{
freopen ("zombie.in", "r", stdin);
freopen ("zombie.out", "w", stdout);
scanf ("%d %d %d", &d, &n, &k);
int i, j;
for (i = 1; i <= n; i ++)
scanf ("%d", &z[i]);
j = 0;
for (i = 1; i <= n; i ++)
{
//dai cu rasengan
sol[i] = sol[i - 1] + 1;
//dai cu nuke
while (z[i] - z[j] >= d)
j ++;
sol[i] = min (sol[i], sol[j - 1] + k);
}
printf ("%d\n", sol[n]);
return 0;
}