Cod sursa(job #635843)

Utilizator HakunaMatataA.A.A. HakunaMatata Data 19 noiembrie 2011 15:12:05
Problema Zombie Scor 90
Compilator cpp Status done
Runda .com 2011 Marime 0.62 kb
#include<stdio.h>

#define NMAX 1000010
#define inf 0x3f3f3f3f

int A[NMAX],S[NMAX];

inline int min( const int a, const int b )
{
	return a<b?a:b;
}

inline int max( const int a, const int b )
{
	return a>b?a:b;
}

int main()
{
	freopen("zombie.in","r",stdin);
	freopen("zombie.out","w",stdout);

	int D,N,K;
	scanf("%d%d%d",&D,&N,&K);

	int i;
	for(i=1; i<=N; ++i)
		scanf("%d",&A[i]),S[i]=inf;

	int p=1,val;
	for(i=1; i<=N; ++i)
	{
		val=A[i];
		S[i]=min(S[i],S[i-1]+1);

		p=max(p,i+K);

		while( A[p]-val <= D && p<=N )
			S[p++]=S[i-1]+K;

	}

	printf("%d\n",S[N]);

	return 0;
}