#include <bits/stdc++.h>
using namespace std;
long long a[100010], q[100010];
long long min(long long x, long long y) { return x < y ? x : y; }
long long max(long long x, long long y) { return x > y ? x : y; }
int main() {
  int n, d, b, i;
  long long ans1 = 0, ans2 = 0;
  scanf("%d%d%d", &n, &d, &b);
  q[0] = 0;
  for (i = 1; i <= n; i++) {
    scanf("%I64d", &a[i]);
    q[i] = q[i - 1] + a[i];
  }
  for (i = 1; i <= n / 2; i++) {
    if ((long long)q[min((long long)i * (d + 1), n)] - q[0] >=
        (long long)(ans1 + 1) * b)
      ans1++;
    if ((long long)q[n] - q[max(1, (long long)n - i * (d + 1))] >=
        (long long)(ans2 + 1) * b)
      ans2++;
  }
  printf("%d\n", n / 2 - min(ans1, ans2));
  return 0;
}
