#include <bits/stdc++.h>
using namespace std;
long long a[300010];
long long min(long long x, long long y) { return x < y ? x : y; }
long long max(long long x, long long y) { return x > y ? x : y; }
int main(int argc, char const *argv[]) {
  long long n, d, b;
  scanf("%I64d%I64d%I64d", &n, &d, &b);
  for (long long i = 1; i <= n; i++) {
    scanf("%I64d", &a[i]);
    a[i] += a[i - 1];
  }
  long long ans1, ans2;
  ans1 = ans2 = 0;
  for (long long i = 1; i <= n / 2; i++) {
    if (a[min(n, (long long)i + (long long)(d * i))] >= ans1 * b + b) ans1++;
    if (a[n] - a[max(0, (long long)n - i - (long long)(d * i))] >= ans2 * b + b)
      ans2++;
  }
  printf("%I64d\n", max(n / 2 - ans1, n / 2 - ans2));
  return 0;
}
