#include <bits/stdc++.h>
using namespace std;
const int N = 1000100;
int a[N];
long long A[N * 5];
int main() {
  int n, l, t;
  long long L;
  scanf("%d%d%d", &n, &l, &t);
  L = l;
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    for (int j = 0; j < 5; j++) {
      A[i + j * n] = L * j + a[i];
    }
  }
  double ans = 0.0;
  int b = t / l;
  long long m = t % l;
  m <<= 1;
  for (int i = 0; i < n; i++) {
    ans += 2.0 * (n - 1) * b;
    long long x = A[i] + m;
    int p = upper_bound(A, A + n * 5, x) - A;
    p -= i;
    for (int j = 0; j < 5; j++) {
      if (A[i + j * n] <= x) --p;
    }
    ans += p;
  }
  printf("%.12f\n", ans / 4.0);
  return 0;
}
