Pagini recente » Cod sursa (job #3202109) | Cod sursa (job #3154712) | Cod sursa (job #303435) | Cod sursa (job #2923760) | Cod sursa (job #2786283)
#include <stdio.h>
#define MAX_N 1000000
int v[MAX_N + 1], vraji[MAX_N + 1], last[MAX_N + 1];
int min( int a, int b ) {
return a < b ? a : b;
}
int main() {
FILE *fin, *fout;
int d, n, k, i, j;
fin = fopen( "zombie.in", "r" );
fscanf( fin, "%d%d%d", &d, &n, &k );
for ( i = 1; i <= n; i++ )
fscanf( fin, "%d", &v[i] );
fclose( fin );
j = 1;
for ( i = 1; i <= n; i++ ) {
while ( v[j] + d - 1 <= v[i] )
j++;
last[i] = j - 1;
}
for ( i = 1; i <= n; i++ )
vraji[i] = min( vraji[i - 1] + 1, vraji[last[i]] + k );
fout = fopen( "zombie.out", "w" );
fprintf( fout, "%d", vraji[n] );
fclose( fout );
return 0;
}