#include <bits/stdc++.h>
using namespace std;
int A[1000005];
int B[1000005];
int LD[2000005];
int LI[2000005];
int main() {
  int n, l, t;
  cin >> n >> l >> t;
  for (int i = (0); i < (n); i++) scanf("%d", &A[i]);
  for (int i = (0); i < (n); i++) B[i] = l - A[i];
  for (int i = (0); i < (n); i++) LD[i] = A[i];
  for (int i = (0); i < (n); i++) LD[i + n] = A[i] + l;
  for (int i = (0); i < (n); i++) LI[i] = B[n - 1 - i];
  for (int i = (0); i < (n); i++) LI[i + n] = B[n - 1 - i] + l;
  double ans = 0;
  for (int i = (0); i < (n); i++) {
    int nv = (2 * t) / l;
    int extra = (2 * t) % l;
    int cntD = upper_bound(LD + i, LD + i + n, extra + LD[i]) - (LD + i + 1);
    ans += cntD * (0.25);
    int cntI = upper_bound(LI + i, LI + i + n, extra + LI[i]) - (LI + i + 1);
    ans += cntI * (0.25);
    ans += nv * ((n - 1) * (0.5));
  }
  printf("%.10lf\n", ans / 2);
  return 0;
}
