#include <bits/stdc++.h>
using namespace std;
namespace SHENZHEBEI {
const long long L = 2333333;
char SZB[L], *S = SZB, *T = SZB;
inline char gc() {
  if (S == T) {
    T = (S = SZB) + fread(SZB, 1, L, stdin);
    if (S == T) return '\n';
  }
  return *S++;
}
inline long long read() {
  long long x = 0, f = 1;
  char ch = gc();
  for (; !isdigit(ch); ch = gc())
    if (ch == '-') f = -1;
  for (; isdigit(ch); ch = gc()) x = x * 10 - 48 + ch;
  return x * f;
}
inline void write(long long x) {
  if (x < 0) putchar('-'), x = -x;
  if (x >= 10) write(x / 10);
  putchar(x % 10 + '0');
}
inline char readchar() {
  char ch = gc();
  for (; isspace(ch); ch = gc())
    ;
  return ch;
}
inline long long readstr(char *s) {
  char ch = gc();
  long long cur = 0;
  for (; isspace(ch); ch = gc())
    ;
  for (; !isspace(ch); ch = gc()) s[cur++] = ch;
  s[cur] = '\0';
  return cur;
}
inline void writeln(long long x) {
  write(x);
  puts("");
}
}  // namespace SHENZHEBEI
using namespace SHENZHEBEI;
long long n, d, b, a[1000010], dd, x1, x2, ddd, f1[1000010], f2[1000010], l, r;
int main() {
  n = read();
  d = read();
  b = read();
  dd = n / 2 * b;
  for (long long i = 1; i <= n; ++i) a[i] = read();
  for (long long i = 1; i <= n; ++i)
    f1[i] = ((a[i]) < (dd) ? (a[i]) : (dd)) + f1[i - 1],
    dd -= ((a[i]) < (dd) ? (a[i]) : (dd));
  dd = n / 2 * b;
  for (long long i = n; i >= 1; --i)
    f2[i] = ((a[i]) < (dd) ? (a[i]) : (dd)) + f2[i + 1],
    dd -= ((a[i]) < (dd) ? (a[i]) : (dd));
  dd = n / 2;
  ddd = 0;
  for (long long i = 1; i <= dd; ++i) {
    r += d + 1;
    r = ((r) < (n) ? (r) : (n));
    if (ddd + b <= f1[r])
      ddd += b;
    else
      x1++;
  }
  dd = (n + 1) / 2 + 1;
  ddd = 0;
  l = n + 1;
  for (long long i = n; i >= dd; --i) {
    l -= d + 1;
    l = ((1ll) < (l) ? (l) : (1ll));
    if (ddd + b <= f2[l])
      ddd += b;
    else
      x2++;
  }
  writeln(((x1) < (x2) ? (x2) : (x1)));
}
