#include <bits/stdc++.h>
using namespace std;
namespace IO {
const int maxn((1 << 21) + 1);
char ibuf[maxn], *iS, *iT, c;
int f;
inline char Getc() {
  return iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, maxn, stdin),
                     (iS == iT ? EOF : *iS++))
                  : *iS++;
}
template <class Int>
inline void In(Int &x) {
  for (f = 1, c = Getc(); c < '0' || c > '9'; c = Getc()) f = c == '-' ? -1 : 1;
  for (x = 0; c >= '0' && c <= '9'; c = Getc())
    x = (x << 1) + (x << 3) + (c ^ 48);
  x *= f;
}
}  // namespace IO
using IO ::In;
const int maxn(1e5 + 5);
long long d, b, n, a[maxn], s[maxn], ans1, ans2;
int main() {
  In(n), In(d), In(b), ++d;
  for (int i = 1; i <= n; ++i) In(a[i]), s[i] = s[i - 1] + a[i];
  long long m = n >> 1;
  for (long long i = 1, cur; i <= m; ++i) {
    cur = s[min(n, i * d)] - b * ans1;
    if (cur >= b) ++ans1;
    cur = s[n] - s[max(0LL, n - i * d)] - b * ans2;
    if (cur >= b) ++ans2;
  }
  printf("%lld\n", m - min(ans1, ans2));
  return 0;
}
