Cod sursa(job #640637)
| Utilizator | Data | 26 noiembrie 2011 11:03:07 | |
|---|---|---|---|
| Problema | Zombie | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
#include <math.h>
long d, n, k, h, i, zt, v[1000010], o, cost;
int main() {
freopen("zombie.in", "r", stdin);
freopen("zombie.out", "w", stdout);
scanf("%ld %ld %ld", &d, &n, &k);
long h = 1;
for (i = 1; i <= n; ++i) {
scanf("%ld", &zt);
v[++o] = zt;
long zo = 0;
while (v[h] <= v[o] - d) {
++zo;
++h;
}
if (zo != 0) {
if (zo >= k) cost += k;
else cost += zo;
}
}
if (o - h + 1 >= k) cost += k;
else cost += o - h + 1;
printf("%ld\n", cost);
return 0;
}
