Cod sursa(job #639786)
| Utilizator | Data | 23 noiembrie 2011 22:45:52 | |
|---|---|---|---|
| Problema | Zombie | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.42 kb |
#include <fstream>
#define NMAX 1000005
using namespace std;
int d,n,k,A[NMAX],D[NMAX];
inline int min(int x,int y)
{
return x<y ? x : y;
}
ifstream in("zombie.in");
ofstream out("zombie.out");
int main()
{
in>>d>>n>>k;
int i,poz;
for (i=1; i<=n; i++)
in>>A[i];
poz=1;
for (i=1; i<=n; i++)
{
while (A[i]-(d-1)>A[poz])
poz++;
D[i]=min(D[i-1]+1,D[poz-1]+k);
}
out<<D[n]<<'\n';
return 0;
}
