Cod sursa(job #613494)

Utilizator cezar305Mr. 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;
}