Pagini recente » Cod sursa (job #2548132) | Cod sursa (job #2375885) | Cod sursa (job #323430) | Cod sursa (job #2372765) | Cod sursa (job #638272)
Cod sursa(job #638272)
#include <cstdio>
FILE *f,*g;
int v[1000100];
int a[1000100];
int n,k,d,mn,i;
inline int mnn(int x,int y) {
if (x>y) return y;
return x;
}
void caut(int i,int j,int x) {
int m;
if (i<=j) {
m=(i+j)/2;
if (a[m]>=x) {
if (m<mn) mn=m;
caut(i,m-1,x);
}
else
caut(m+1,j,x);
}
}
int main() {
f=fopen("zombie.in","r");
g=fopen("zombie.out","w");
fscanf(f,"%d%d%d",&d,&n,&k);
v[0]=0;
for (i=1;i<=n;i++) {
fscanf(f,"%d",&a[i]);
if (i<=k) {
v[i]=i;
continue;
}
mn=i;
caut (1,i-1,a[i]-d+1);
v[i]=mnn(v[mn-1]+k,v[i-1]+1);
}
fprintf(g,"%d",v[n]);
fclose(g);
return 0;
}