#include <bits/stdc++.h>
using namespace std;
long long cnt[100000][2];
int w[100000];
int l[100000], r[100000];
int x[2];
int main() {
  int n, d, b, i;
  scanf("%d%d%d", &n, &d, &b);
  for (i = 0; i < n; i++) {
    scanf("%d", w + i);
  }
  for (i = 0; i < n; i++) {
    cnt[i][0] = cnt[i][1] = 0;
  }
  for (i = 0; i < n; i++) {
    if ((i + 1) % (d + 1) == 0) {
      l[i] = (i + 1) / (d + 1) - 1;
    } else {
      l[i] = (i + 1) / (d + 1);
    }
    if ((n - i) % (d + 1) == 0) {
      r[i] = n - (n - i) / (d + 1);
    } else {
      r[i] = n - (n - i) / (d + 1) - 1;
    }
  }
  long long rem = (n + 1LL) / 2 * b;
  for (i = 0; i < n; i++) {
    if (rem >= w[i])
      cnt[l[i]][0] += w[i], rem -= w[i];
    else {
      cnt[l[i]][0] += rem;
      cnt[r[i]][1] += w[i] - rem;
      rem = 0;
    }
  }
  x[0] = x[1] = 0;
  long long cur = 0;
  for (i = 0; i < (n + 1) / 2; i++) {
    cur += cnt[i][0];
    if (cur >= b)
      cur -= b;
    else
      x[0]++;
  }
  cur = 0;
  for (i = n - 1; i >= (n + 1) / 2; i--) {
    cur += cnt[i][1];
    if (cur >= b)
      cur -= b;
    else
      x[1]++;
  }
  printf("%d\n", max(x[0], x[1]));
  return 0;
}
