Cod sursa(job #638263)

Utilizator stay_awake77Cangea Catalina stay_awake77 Data 20 noiembrie 2011 19:56:56
Problema Zombie Scor 100
Compilator cpp Status done
Runda .com 2011 Marime 0.5 kb
#include <cstdio>

#define NMAX 1000005

int Lg, N, K, i, D[NMAX], St, A[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", &Lg, &N, &K);
	
	scanf("%d", &A[1]);
	D[1] = 1;
	St = 1;
	
	for( i = 2; i <= N; ++i )
	{
		scanf("%d", &A[i]);
		for( ; A[i] - A[St] >= Lg; ++St );
		D[i] = MIN( D[i-1] + 1, D[ St - 1 ] + K );
	}
	
	printf("%d\n", D[N]);
	
	return 0;
}