#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
long long d;
int a[N], n, b;
long long sum(long long l, long long r) {
  l = max(l, 1LL);
  r = min(r, (long long)n);
  return (a[r] - a[l - 1]) / b;
}
bool judge(int m) {
  for (int i = m + 1; i <= n >> 1; ++i) {
    long long L = i;
    long long R = n - i + 1;
    long long r = d * i;
    if (sum(L - r, L + r) < i - m || sum(R - r, R + r) < i - m ||
        sum(L - r, R + r) < (i - m) * 2)
      return 0;
  }
  return 1;
}
int main() {
  scanf("%d%lld%d", &n, &d, &b);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", a + i);
    a[i] += a[i - 1];
  }
  int l = 0, r = (n + 1) >> 1;
  while (l < r) {
    int mid = (l + r) >> 1;
    if (judge(mid))
      r = mid;
    else
      l = mid + 1;
  }
  printf("%d\n", l);
  return 0;
}
