#include <bits/stdc++.h>
using namespace std;
namespace ae86 {
const int bufl = 1 << 17;
char buf[bufl], *s = buf, *t = buf;
inline int fetch() {
  if (s == t) {
    t = (s = buf) + fread(buf, 1, bufl, stdin);
    if (s == t) return EOF;
  }
  return *s++;
}
inline long long ty() {
  register long long a = 0;
  register int b = 1, c = fetch();
  while (!isdigit(c)) b ^= c == '-', c = fetch();
  while (isdigit(c)) a = a * 10 + c - 48, c = fetch();
  return b ? a : -a;
}
}  // namespace ae86
using ae86::ty;
const int _ = 100002;
int sva[_] = {0};
int facingTheDark(int n, int all, int *va, int dash, int tar) {
  register int i, cnt = 0, res = 0;
  for (i = 1; i <= all; i++) sva[i] = sva[i - 1] + va[i];
  for (i = 1; i <= n; i++) {
    if (sva[min((long long)all, 1ll * i * (dash + 1))] - sva[i - 1] + res >=
        tar)
      res -= tar, cnt++;
    res += va[i];
  }
  return n - cnt;
}
int n, tar, dash, ins[_];
int main() {
  register int i, mx = -1e9;
  n = ty(), dash = ty(), tar = ty();
  for (i = 1; i <= n; i++) ins[i] = ty();
  mx = max(mx, facingTheDark((n + 1) / 2, n, ins, dash, tar));
  reverse(ins + 1, ins + n + 1);
  mx = max(mx, facingTheDark(n / 2, n, ins, dash, tar));
  printf("%d\n", mx);
  return 0;
}
