#include <bits/stdc++.h>
using namespace std;
int n;
long long p[300100];
long long L;
int v1, v2;
double pr[100500] = {};
long long A, B;
inline bool covered(long long d) { return d * B < A; }
int main() {
  cin >> n >> L >> v1 >> v2;
  A = v2 * L;
  B = v1 + v2;
  int d;
  for (int i = (0); i < (n); ++i) scanf("%d", &d), p[i] = d;
  for (int i = (0); i < (n); ++i) p[n + i] = 2 * L + p[i];
  p[2 * n] = 4 * L + p[0];
  double D = double(A) / B;
  double pos = 0;
  int p2 = 0;
  int cnt = 0;
  while (covered(p[p2])) ++p2, ++cnt;
  for (int u = (0); u < (n); ++u) {
    while (covered(p[p2] - p[u])) {
      double next_pos = p[p2] - D;
      pr[cnt] += (next_pos - pos) / 2 / L;
      pos = next_pos;
      ++cnt;
      ++p2;
    }
    pr[cnt] += (p[u] - pos) / 2 / L;
    pos = p[u];
    if (cnt) --cnt;
  }
  while (covered(p[p2] - 2 * L)) {
    double next_pos = p[p2] - D;
    pr[cnt] += (next_pos - pos) / 2 / L;
    pos = next_pos;
    ++cnt;
    ++p2;
  }
  pr[cnt] += (2 * L - pos) / 2 / L;
  pr[0] = 1;
  for (int i = (1); i <= (n); ++i) pr[0] -= pr[i];
  for (int i = (0); i <= (n); ++i) printf("%.11lf\n", pr[i]);
}
