#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, d, b, a[N], c[N], nn, an, m, le, ri, bb, ba;
bool bz;
void R(int &n) {
  char c;
  int fh = 1;
  for (; (c = getchar()) < '0' || c > '9';)
    if (c == '-') fh = -1;
  for (n = 0; c <= '9' && c >= '0'; c = getchar()) n = n * 10 + c - 48;
  n *= fh;
}
int main() {
  R(n);
  R(d);
  R(b);
  for (int i = 1, E = n; i <= E; i++) R(a[i]);
  for (int l = 0, r = n >> 1, m; m = l + r >> 1, l <= r;) {
    bz = 1;
    nn = n + 1 >> 1;
    for (int i = 1, E = n; i <= E; i++) c[i] = a[i];
    le = 1;
    ri = n;
    for (int i = m + 1, E = nn; i <= E; i++) {
      int ii = n - i + 1;
      bb = b;
      for (; le <= n; le++) {
        if ((i - le > 0 ? i - le : -(i - le)) > (long long)d * i) continue;
        ba = (bb < c[le] ? bb : c[le]);
        bb -= ba;
        c[le] -= ba;
        if (!bb) break;
      }
      if (bb) {
        bz = 0;
        break;
      }
      if (ii != i) {
        bb = b;
        for (; ri; ri--) {
          if ((ri - ii > 0 ? ri - ii : -(ri - ii)) > (long long)d * i) continue;
          ba = (bb < c[ri] ? bb : c[ri]);
          bb -= ba;
          c[ri] -= ba;
          if (!bb) break;
        }
        if (bb) {
          bz = 0;
          break;
        }
      }
    }
    if (bz)
      an = m, r = m - 1;
    else
      l = m + 1;
  }
  printf("%d", an);
}
