#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int n, d, b;
int a[N], cur[N];
bool pred(int x);
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) / 2;
    if (pred(mid))
      r = mid;
    else
      l = mid + 1;
  }
  printf("%d\n", l);
  return 0;
}
bool pred(int x) {
  memcpy(cur, a, sizeof(cur));
  int mid = (n + 1) / 2, ptr = 1;
  for (int i = x + 1; i <= mid; ++i) {
    int sum = 0;
    for (; ptr <= n && ptr - i <= (long long)i * d; ++ptr)
      if (sum + cur[ptr] >= b) {
        cur[ptr] -= b - sum;
        sum = b;
        break;
      } else {
        sum += cur[ptr];
        cur[ptr] = 0;
      }
    if (sum != b) return false;
  }
  ptr = n;
  for (int i = x + 1; i < mid; ++i) {
    int sum = 0;
    for (; ptr >= 1 && n - i + 1 - ptr <= (long long)i * d; --ptr)
      if (sum + cur[ptr] >= b) {
        cur[ptr] -= b - sum;
        sum = b;
        break;
      } else {
        sum += cur[ptr];
        cur[ptr] = 0;
      }
    if (sum != b) return false;
  }
  return true;
}
