Cod sursa(job #635682)
Utilizator | Horia Cretescu ELHoria | Data | 19 noiembrie 2011 14:08:02 |
---|---|---|---|
Problema | Zombie | Scor | 100 |
Compilator | cpp | Status | done |
Runda | .com 2011 | Marime | 0.41 kb |
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("zombie.in");
ofstream fout("zombie.out");
int N , K , D , c[1000001] , T;
int main()
{
queue<int> Q;
fin>>D>>N>>K;
for(int i=1;i<=N;++i)
{
fin>>T;
while(!Q.empty() && T-Q.front()>=D) Q.pop();
Q.push(T);
c[i] = c[i-1] + 1;
if(Q.size()) c[i] = min(c[i],c[i-Q.size()] + K);
}
fout<<c[N]<<'\n';
return 0;
}