#include <bits/stdc++.h>
using namespace std;
const int maxn = 100000 + 10;
int n, d, b, a[maxn], l = 0, r, ans, pos[maxn], M, t[maxn], L[maxn], R[maxn];
long long sum[maxn];
bool check(int x) {
  for (int i = n - x; i > M; i--) {
    long long pos = max(1ll, i - (long long)(n - i + 1) * d);
    if (sum[n] - sum[pos - 1] < (n - x + 1 - i) * b) return false;
  }
  for (int i = x + 1; i <= M; i++) {
    long long pos = min(i + (long long)i * d, (long long)n);
    if (sum[pos] < (i - x) * b) return false;
  }
  return true;
}
int main() {
  scanf("%d%d%d", &n, &d, &b);
  M = (n + 1) / 2;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    sum[i] = sum[i - 1] + a[i];
  }
  r = (n + 1) / 2;
  while (l <= r) {
    int mid = (l + r) >> 1;
    if (check(mid)) {
      ans = mid;
      r = mid - 1;
    } else
      l = mid + 1;
  }
  cout << ans << endl;
}
