#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
long long n, v, b, a[101000], tmp[101000];
bool chk(long long now) {
  long long st = now + 1, en = n - now, p = 1, aim, de;
  for (long long i = 1; i <= n; i++) tmp[i] = a[i];
  for (long long i = st; i <= en; ++i) {
    for (long long aim = b; aim;) {
      for (; !tmp[p] && p <= n;) ++p;
      if (p > n) return 0;
      if (((abs(p - i) + v - 1) / v) > min(i, n - i + 1)) {
        ++p;
        continue;
      }
      de = min(tmp[p], aim);
      tmp[p] -= de;
      aim -= de;
    }
  }
  return 1;
}
signed main() {
  n = read();
  v = read();
  b = read();
  for (long long i = 1; i <= n; ++i) a[i] = read();
  long long l = 0, r = n / 2, mid, ans = r;
  long long ts = 0;
  for (long long i = 1; i <= n; i++) ts++;
  while (l <= r) {
    mid = l + r >> 1;
    if (chk(mid)) {
      ans = mid;
      r = mid - 1;
    } else
      l = mid + 1;
  }
  printf("%lld\n", ans);
}
