Cod sursa(job #636335)

Utilizator SmarandaMaria Pandele Smaranda Data 19 noiembrie 2011 18:56:43
Problema Zombie Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.72 kb
#include<cstdio>
using namespace std;
long n,d,k,i;
long a[1000001];
long c[1000001];
void read () {
	scanf("%ld%ld%ld",&d,&n,&k);
	for ( long i=1;i<=n;i++)
		scanf("%ld",&a[i]);
}

void rez() {
	long i,rasengan,min=d,rasengan2,min_rasengan2,j;
	for (i=1;i<=n;i++) {
		rasengan=c[i-1]+1;
		min_rasengan2=2000000000;
		for (j=i-1;j>=1;j--)
			if (a[i]-a[j]+1<=d) {
				rasengan2=c[j-1]+k;
				if (rasengan2<min_rasengan2)
					min_rasengan2=rasengan2;
			}
			else
				break;
		if (rasengan<min_rasengan2)
			c[i]=rasengan;
		else
			c[i]=min_rasengan2;
	}
	printf("%ld\n",c[n]);
}

int main () {
	
	freopen("zombie.in","r",stdin);
	freopen("zombie.out","w",stdout);
	
	read();
	rez();
	return 0;
}