Cod sursa(job #637700)
| Utilizator | Data | 20 noiembrie 2011 16:00:27 | |
|---|---|---|---|
| Problema | Zombie | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | .com 2011 | Marime | 0.47 kb |
#include <fstream>
using namespace std;
const int NMAX = 1000001;
long long dp[NMAX];
int D, N, K, t[NMAX];
int main()
{
ifstream fin("zombie.in");
fin>>D>>N>>K;
for (int i = 1; i <= N; ++i)
fin>>t[i];
dp[0] = 0;
dp[1] = 1;
int left = 1;
for (int i = 2; i <= N; ++i)
{
dp[i] = dp[i-1] + 1;
while (t[i] - t[left] > D - 1)
++left;
dp[i] = min(dp[i], dp[left-1] + K);
}
ofstream fout("zombie.out");
fout<<dp[N]<<"\n";
}