Pagini recente » Cod sursa (job #2822961) | Cod sursa (job #1432934) | Cod sursa (job #1950855) | Cod sursa (job #2464353) | Cod sursa (job #1459858)
#include <cstdio>
#include <algorithm>
#define DIM 1000010
using namespace std;
int N, M, K, Dist;
int V[DIM], P[DIM],D[DIM];
inline int CautBin(int val, int i){
int st = 1, dr = i, mid;
while(st <= dr){
mid = st + (dr - st) / 2;
if(V[mid] < val)
st = mid + 1;
else
dr = mid - 1;
}
return st;
}
int main(){
freopen("zombie.in" ,"r", stdin );
freopen("zombie.out","w", stdout);
scanf("%d %d %d", &Dist, &N, &K);
for(int i = 1; i <= N; i ++){
scanf("%d", &V[i]);
P[i] = CautBin(V[i] - Dist + 1, i);
}
for(int i = 1; i <= N; i ++)
D[i] = min(D[i-1] + 1, D[P[i]-1] + K);
printf("%d\n", D[N]);
fclose(stdin );
fclose(stdout);
return 0;
}