Pagini recente » Cod sursa (job #1136875) | Cod sursa (job #1355706) | Cod sursa (job #2516328) | Cod sursa (job #2147552) | Cod sursa (job #2773500)
#include <fstream>
#define NMAX 1000000
using namespace std;
ifstream cin ("zombie.in");
ofstream cout ("zombie.out");
int v[NMAX + 1], vcst[NMAX + 1], dp[NMAX + 1];
int main() {
int d, n, k, i, st, dr, sol, nr1, nr2;
cin >> d >> n >> k;
for (i = 0; i < n; i++)
cin >> v[i];
st = dr = sol = 0;
while (dr < n) {
if (v[dr] <= v[st] + d)
dr++;
else
st++;
vcst[dr] = st;
}
dp[0] = 1;
for (i = 1; i < n; i++) {
nr1 = dp[i - 1] + 1;
nr2 = dp[vcst[i] - 1] + k;
if (nr1 < nr2)
dp[i] = nr1;
else
dp[i] = nr2;
}
cout << dp[n - 1];
return 0;
}