#include <bits/stdc++.h>
using namespace std;
const long long md = 1e9 + 7;
const long long arr = 2e5;
long long a[arr], aa[arr];
long long n, d, b;
bool check(long long u) {
  for (long long i = 1; i <= n; i++) a[i] = aa[i];
  long long pluss = 0;
  long long uu = u;
  long long start = 1;
  long long mid = n / 2 + n % 2;
  while (1) {
    if (a[start] >= b)
      pluss += a[start] - b;
    else if (uu)
      uu--, pluss += a[start];
    else
      break;
    start++;
    if (start > mid) break;
  }
  long long last = start;
  pluss += a[start];
  for (long long i = start; i <= mid; i++) {
    while (last + 1 <= min(i + i * d, n)) {
      last++;
      pluss += a[last];
      a[last] = 0;
    }
    if (pluss < b) return (0);
    pluss -= b;
  }
  for (long long i = 1; i <= n; i++) a[i] = aa[i];
  reverse(a + 1, a + 1 + n);
  pluss = 0;
  uu = u;
  start = 1;
  mid = n / 2;
  while (1) {
    if (a[start] >= b)
      pluss += a[start] - b;
    else if (uu)
      uu--, pluss += a[start];
    else
      break;
    start++;
    if (start > mid) break;
  }
  last = start;
  pluss += a[start];
  for (long long i = start; i <= mid; i++) {
    while (last + 1 <= min(i + i * d, n)) {
      last++;
      pluss += a[last];
      a[last] = 0;
    }
    if (pluss < b) return (0);
    pluss -= b;
  }
  return (1);
}
signed main() {
  cin >> n >> d >> b;
  for (long long i = 1; i <= n; i++) cin >> aa[i];
  long long l = 0;
  long long r = n;
  while (r - l > 1) {
    long long d = (l + r) / 2;
    if (check(d))
      r = d;
    else
      l = d;
  }
  if (check(l))
    cout << l;
  else
    cout << r;
}
