Cod sursa(job #636830)
| Utilizator | Data | 20 noiembrie 2011 00:08:31 | |
|---|---|---|---|
| Problema | Zombie | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | .com 2011 | Marime | 0.56 kb |
#include <fstream>
#include <iostream>
using namespace std;
const int nmax = 1000010;
int A[nmax], B[nmax];
int main()
{
ifstream in ("zombie.in");
ofstream out("zombie.out");
int D, N, K, i, ind;
in >> D >> N >> K;
for(i = 1; i <= N; i++)
in >> A[i];
B[1] = 1;
ind = 1;
for(i = 2; i <= N; i++)
{
B[i] = B[i - 1] + 1;
while(A[ind] < A[i] - D)
ind++;
if(B[i] > B[ind - 1] + K)
B[i] = B[ind - 1] + K;
}
out << B[N];
return 0;
}
