Cod sursa(job #635914)

Utilizator HakunaMatataA.A.A. HakunaMatata Data 19 noiembrie 2011 15:35:02
Problema Zombie Scor 100
Compilator cpp Status done
Runda .com 2011 Marime 0.6 kb
#include<fstream>
using namespace std;

#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()
{
	ifstream file1 ("zombie.in");
	ofstream file2 ("zombie.out");
	
	int D,N,K;
	file1>>D>>N>>K;
	int i;
	for(i=1; i<=N; ++i)
		file1>>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;
	}
	file2<<S[N];
	return 0;
}