Pagini recente » Cod sursa (job #2751141) | Cod sursa (job #1278496) | Cod sursa (job #37668) | Cod sursa (job #2595280) | Cod sursa (job #1786712)
#include <cstdio>
#define NMax 1000000
#define MIN(a,b)((a)<(b)?(a):(b))
int best[NMax+1];
int idx[NMax+1];
int v[NMax+1];
int main(){
freopen("zombie.in","r",stdin);
freopen("zombie.out","w",stdout);
int i,j,k,D,N,K;
scanf("%d %d %d",&D,&N,&K);
for(i = 1; i <= N; ++i) scanf("%d",&v[i]);
for(i = 1; i <= N; ++i) idx[i] = i;
for(k = j = i = 1; i <= N; ++i)
{
while( v[j] <= v[i]+D-1 ) ++j;
--j;
for(; k <= j; ++k) idx[k] = i;
}
for(i = 1; i <= N; ++i)
best[i] = MIN( best[i-1] + 1, best[ idx[i] - 1 ] + K );
printf("%d\n", best[N]);
return 0;
}