#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const long long int inf = 2e18;
const long double eps = 1e-9;
const int NN = 1e5 + 2;
vector<vector<int> > adj;
int ar[NN];
long long int pre[NN];
void solve() {
  long long int i = 0, j = 0, d, b, k = 0, n = 0, m = 0;
  cin >> n >> d >> b;
  for (i = 1; i <= n; i++) {
    cin >> ar[i];
    pre[i] += pre[i - 1] + ar[i];
  }
  long long int ad1 = 0, ad2 = 0;
  i = 1;
  j = n;
  int lef = 0, rig = 0;
  while (i < j) {
    ;
    if (ad1 + ar[i] < b) {
      int up = min(n, i * (d + 1));
      if (ad1 + ar[i] + pre[up] - pre[i] < b) {
        lef++;
        ad1 += ar[i];
      } else {
        ad1 -= (b - ar[i]);
      }
    } else {
      ad1 += ar[i] - b;
    }
    if (i == j) {
      break;
    }
    if (ad2 + ar[j] < b) {
      int lo = max(1LL, j - (n - j + 1) * d);
      if (ad2 + ar[j] + pre[j - 1] - pre[lo - 1] < b) {
        rig++;
        ad2 += ar[j];
      } else {
        ad2 -= (b - ar[j]);
      }
    } else {
      ad2 += ar[j] - b;
    };
    i++;
    j--;
  }
  cout << (max(lef, rig)) << '\n';
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int T = 1, tc;
  for (tc = 1; tc <= T; tc++) {
    solve();
  }
  return 0;
}
