#include <bits/stdc++.h>
using namespace std;
int n, d, b, a[100010];
inline bool cb(int i, int j) {
  int nd = (abs(i - j) + d - 1) / d;
  int kd = min(j, n - j + 1);
  if (nd <= kd) return true;
  return false;
}
inline bool check(int x) {
  int kl = x + 1, kr = n - x;
  for (int i = 1, j = kl, k = b; i <= n; i++) {
    int hv = a[i];
    while (hv) {
      if (cb(i, j)) {
        int x = min(hv, k);
        hv -= x, k -= x;
        if (!k) {
          j++, k = b;
          if (j > kr) return true;
        }
      } else
        break;
    }
  }
  return false;
}
int main() {
  scanf("%d%d%d", &n, &d, &b);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  int l = 0, r = (n + 1) / 2;
  while (l < r) {
    int mid = (l + r) >> 1;
    if (check(mid))
      r = mid;
    else
      l = mid + 1;
  }
  printf("%d\n", l);
  return 0;
}
