Cod sursa(job #638526)
Utilizator | Data | 20 noiembrie 2011 22:01:58 | |
---|---|---|---|
Problema | Zombie | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<cstdio>
#define Nmax 1000010
using namespace std;
unsigned int v[Nmax],p,N,K,D,C;
int main(){
freopen("zombie.in","r",stdin);
freopen("zombie.out","w",stdout);
scanf("%d%d%d",&D,&N,&K);
p=1;
for(unsigned int i=1;i<=N;++i){
scanf("%d",&v[i]);
if(v[i]-v[p]> D){
if(i-p > K){
C+=K;
p=i;
}
else
while(v[i]-v[p] > D){
++C;
++p;
}
}
}
if(N-p +1 >= K)
C+=K;
else C+=N-p+1;
printf("%d",C);
return 0;
}