#include <bits/stdc++.h>
inline long long in() {
  long long k = 0;
  char ch = getchar();
  while (ch < '-') ch = getchar();
  while (ch > '-') k = k * 10 + ch - '0', ch = getchar();
  return k;
}
const int N = 1e5 + 5;
long long sum[N];
inline long long min(const long long &a, const long long &b) {
  return a < b ? a : b;
}
inline long long max(const long long &a, const long long &b) {
  return a > b ? a : b;
}
int main() {
  long long n = in(), d = in(), b = in();
  for (int i = 1; i <= n; ++i) sum[i] = sum[i - 1] + in();
  long long l = 1, r = n, a1 = 0, a2 = 0;
  while (l < r) {
    if (sum[min(n, (d + 1) * l)] - (l - 1 - a1) * b < b) ++a1;
    if (sum[n] - sum[max(0, r - d * l - 1)] - (n - r - a2) * b < b) ++a2;
    ++l, --r;
  }
  printf("%I64d\n", max(a1, a2));
  return 0;
}
