Cod sursa(job #637205)
| Utilizator | Data | 20 noiembrie 2011 13:00:27 | |
|---|---|---|---|
| Problema | Zombie | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | .com 2011 | Marime | 0.44 kb |
#include <fstream>
using namespace std;
const int INF = 0x3f3f3f3f;
int D, N, K;
int A[1000002], V[1000002], limit;
int main()
{
ifstream fin("zombie.in");
ofstream fout("zombie.out");
fin >> D >> N >> K;
limit = 1;
for (int i = 1; i <= N; ++i)
{
fin >> A[i];
// 1
V[i] = V[i - 1] + 1;
//2
while (A[limit] < A[i] - (D - 1))
++limit;
V[i] = min(V[i], V[limit - 1] + K);
}
fout << V[N];
fin.close();
fout.close();
}
