#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:60000000")
using namespace std;
template <class T>
T sqr(T x) {
  return x * x;
}
double const pi = 3.1415926535897932384626433832795;
int const inf = (int)1e9;
long long const inf64 = (long long)4e18;
const string name = "c";
const int NMAX = 100100;
const double eps = 1e-5;
int n;
double d, l, v1, v2, x[3 * NMAX], ans[NMAX];
int main() {
  cin >> n >> l >> v1 >> v2;
  for (int i = 0; i < (int)n; i++) scanf("%lf", &x[i]);
  for (int i = 0; i < (int)n; i++) {
    x[i + n] = x[i] + 2 * l;
    x[i + 2 * n] = x[i] + 4 * l;
  }
  d = l * v2 / (v1 + v2);
  double last = x[0];
  int qqqqq = 0, y2 = 0;
  for (int i = 0; i < (int)2 * n; i++)
    if (x[i] > last + d - eps) {
      y2 = i;
      break;
    }
  memset(ans, 0, sizeof(ans));
  while (qqqqq < n) {
    double d1 = x[qqqqq + 1] - last, d2 = x[y2] - last - d;
    ans[y2 - qqqqq - 1] += (min(d1, d2)) / (2 * l);
    if (d1 < d2)
      last += d1, qqqqq++;
    else
      last += d2, y2++;
  }
  for (int i = 0; i < (int)n + 1; i++) printf("%.10lf\n", ans[i]);
  return 0;
}
