Cod sursa(job #640077)

Utilizator paul_gabryelPaul Buda paul_gabryel Data 24 noiembrie 2011 18:45:23
Problema Zombie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb

#include <cstdio>
#include <fstream>
#include <algorithm>

using namespace std;

#define N 1000001

int bst[N],a[N],b[N],n,k,d;

void read ()
{
	ifstream in ("zombie.in");
	in>>d>>n>>k;
	for(int i=1;i<=n;++i)
	{
		in>>a[i];
		if(a[i]-a[i-1]>d)
			b[i]=i-1;
		else
			if(a[i]-a[b[i-1]]>d)
				b[i]=i-1;
			else
				b[i]=b[i-1];
	}
}

void solve ()
{
	bst[1]=1;
	for(int i=2;i<=n;++i)
		bst[i]=min(bst[i-1]+1,bst[b[i]-1]+k);
}

void out ()
{
	freopen ("zombie.out","w",stdout);
	printf("%d",bst[n]);
}

int main ()
{
	read ();
	solve ();
	out ();
	return 0;
}