#include <bits/stdc++.h>
using namespace std;
inline int gi() {
  int sum = 0, f = 1;
  char ch = getchar();
  while (ch > '9' || ch < '0') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    sum = (sum << 3) + (sum << 1) + ch - '0';
    ch = getchar();
  }
  return f * sum;
}
inline long long gl() {
  long long sum = 0, f = 1;
  char ch = getchar();
  while (ch > '9' || ch < '0') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    sum = (sum << 3) + (sum << 1) + ch - '0';
    ch = getchar();
  }
  return f * sum;
}
int n;
long long a[100010], s[100010], d, b;
int main() {
  n = gi();
  d = gl();
  b = gl();
  for (register int i = 1; i <= n; i++) a[i] = gl();
  for (register int i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];
  int cnt1 = 0, cnt2 = 0;
  for (register int i = 1; i <= n / 2; i++) {
    long long x = s[min(1ll * n, i * (d + 1))] - 1ll * cnt1 * b;
    if (x >= b) cnt1++;
    x = s[n] - s[max(0ll, n - i * (d + 1))] - 1ll * cnt2 * b;
    if (x >= b) cnt2++;
  }
  printf("%d\n", n / 2 - min(cnt1, cnt2));
  return 0;
}
