#include <bits/stdc++.h>
using namespace std;
long long n, d, b, l, r, need, ans1, ans2;
long long a[500011], n1[500011], n2[500011];
int main() {
  scanf("%lld%lld%lld", &n, &d, &b);
  long long re = (n >> 1) * b;
  for (int i = 1; i <= n; i++) scanf("%lld", &a[i]);
  for (int i = 1; i <= n; i++)
    n1[i] = min(a[i], re) + n1[i - 1], re -= min(a[i], re);
  re = (n >> 1) * b;
  for (int i = n; i; i--)
    n2[i] = min(a[i], re) + n2[i + 1], re -= min(a[i], re);
  for (int i = 1; i <= n / 2; i++) {
    r = min(r + d + 1, n);
    if (need + b <= n1[r])
      need += b;
    else
      ans1++;
  }
  l = n + 1;
  need = 0;
  for (int i = n; i >= ((n + 1) / 2) + 1; i--) {
    l = max(1LL, l - d - 1);
    if (need + b <= n2[l])
      need += b;
    else
      ans2++;
  }
  printf("%lld\n", max(ans1, ans2));
  return 0;
}
