Cod sursa(job #635320)

Utilizator crushackPopescu Silviu crushack Data 19 noiembrie 2011 10:18:11
Problema Zombie Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.54 kb
#include <stdio.h>
#define NMax 1000010

const char IN[]="zombie.in",OUT[]="zombie.out";

int D,N,K;
int a[NMax];
int T[NMax];

inline int min(int x,int y){
	return x<y ? x : y;
}

int main()
{
	int i,j;
	freopen(IN,"r",stdin);
	scanf("%d%d%d",&D,&N,&K);
	for (i=0;i<N;++i) scanf("%d",a+i);
	fclose(stdin);
	
	for (i=j=N-1;i>=0;--i)
	{
		while (j>i && a[i]+D-1<a[j]) --j;
		T[i]= min( T[i+1] + 1 , K + T[j+1]);
	}
	
	for (i=0;i<N;++i) printf("%d ",T[i]);printf("\n");
	freopen(OUT,"w",stdout);
	printf("%d\n",T[0]);
	fclose(stdout);
	
	return 0;
}