#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 n, d, b, x, t1 = 0, t2 = 0;
  scanf("%I64d%I64d%I64d", &n, &d, &b);
  for (int i = 1; i <= n; i++) {
    scanf("%I64d", &x);
    f[i] = f[i - 1] + x;
  }
  for (int i = 1; i <= (n + 1) / 2; i++) {
    if (f[min(i + i * d, n)] >= (t1 + 1) * b) t1++;
  }
  for (int i = n; i > n - (n + 1) / 2; i--) {
    if (f[n] - f[max(0, i - (n - i + 1) * d - 1)] >= (t2 + 1) * b) t2++;
  }
  printf("%I64d", (n + 1) / 2 - min(t1, t2));
  return 0;
}
