Cod sursa(job #637101)
| Utilizator | Data | 20 noiembrie 2011 11:56:06 | |
|---|---|---|---|
| Problema | Zombie | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | .com 2011 | Marime | 0.48 kb |
#include <cstdio>
#include <deque>
#define pb push_back
using namespace std;
deque <int> bst,val;
int main()
{
int i,j,n,k,d,last=0,x;
freopen("zombie.in","r",stdin);
freopen("zombie.out","w",stdout);
scanf("%d %d %d %d",&d,&n,&k,&x);
bst.pb(1);val.pb(x);
for (i=2;i<=n;++i)
{scanf("%d",&x);
while ((!val.empty()) && (val.front()<=x-d) )
last=bst.front(),val.pop_front(),bst.pop_front();
val.pb(x);
bst.pb(min(bst.back()+1,last+k));
}
printf("%d\n",bst.back());
return 0;
}