#include <bits/stdc++.h>
using namespace std;
long long f[100010];
long long max(long long x, long long y) { return x > y ? x : y; }
long long min(long long x, long long y) { return x < y ? x : y; }
int main() {
  long long k, n, m, d, b, t1 = 0, t2 = 0;
  int i;
  scanf("%I64d%I64d%I64d", &n, &d, &b);
  f[0] = 0;
  for (i = 1; i <= n; i++) {
    scanf("%I64d", &k);
    f[i] = f[i - 1] + k;
  }
  for (i = 1; i <= n / 2; i++)
    if (f[min(n, i + i * d)] >= (t1 + 1) * b) t1++;
  if (n % 2 == 0)
    m = n / 2 + 1;
  else
    m = n / 2 + 2;
  for (i = n; i >= m; i--)
    if (f[n] - f[max(0, i - (n - i + 1) * d) - 1] >= (t2 + 1) * b) t2++;
  printf("%I64d", n / 2 - min(t1, t2));
  return 0;
}
