#include <bits/stdc++.h>
using namespace std;
int n, d, b;
int main() {
  scanf("%d%d%d", &n, &d, &b);
  vector<int> a(n);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  vector<long long> pref(n + 1);
  for (int i = 1; i < n + 1; i++) {
    pref[i] = pref[i - 1] + a[i - 1];
  }
  int sz = (n + 1) / 2;
  int lo = -1, hi = sz;
  while (hi - lo > 1) {
    bool ok = true;
    int mid = (hi + lo) >> 1;
    int l = mid, r = n - 1 - mid;
    while (l <= r) {
      long long sl = pref[min(l + 1LL * (l + 1) * d + 1, 1LL * n)] - pref[0];
      long long sr = pref[n] - pref[max(0LL, r - 1LL * (l + 1) * d)];
      sl -= 1LL * (l - mid) * b;
      sr -= 1LL * (l - mid) * b;
      if (sl < b || sr < b) {
        ok = false;
        break;
      }
      l++;
      r--;
    }
    if (ok)
      hi = mid;
    else
      lo = mid;
  }
  cout << hi << endl;
  return 0;
}
