#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
int n, d, b, a[MAXN];
inline bool check(int x) {
  int l = x + 1, r = n - x, q = (n >> 1) - x;
  int sum = 0, pos;
  for (int i = n; i >= 1; --i) {
    sum += a[i];
    if (sum > b * q) {
      pos = i;
      break;
    }
  }
  int s = 0, xr = r;
  for (int i = n; i > pos; --i) {
    int tmp = (abs(i - xr) + d - 1) / d;
    if (tmp > n - xr + 1) {
      return 0;
    }
    s += a[i];
    for (; s >= b;) {
      s -= b;
      --xr;
    }
  }
  int tmp = (abs(pos - xr) + d - 1) / d;
  if (tmp > n - xr + 1) {
    return 0;
  }
  s = 0;
  int xl = l;
  for (int i = 1; i <= pos; ++i) {
    int tmp = (abs(i - xl) + d - 1) / d;
    if (tmp > xl) return 0;
    s += a[i];
    for (; s >= b;) {
      s -= b;
      ++xl;
    }
  }
  return 1;
}
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 / 2, ans = 0;
  while (l <= r) {
    int mid = (l + r) >> 1;
    if (check(mid)) {
      ans = mid;
      r = mid - 1;
    } else {
      l = mid + 1;
    }
  }
  printf("%d", ans);
  return 0;
}
