#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000001;
int n, m;
double l, v1, v;
double g[maxn];
double res[maxn];
struct tinfo {
  double p;
  int v;
} f[maxn];
void addseg(double st, double en) {
  f[++m].p = st;
  f[m].v = 1;
  f[++m].p = en;
  f[m].v = -1;
}
bool cmp(const tinfo a, const tinfo b) { return a.p < b.p; }
int main() {
  scanf("%d%lf%lf%lf", &n, &l, &v1, &v);
  double t = l / (v1 + v);
  for (int i = 1; i <= n; ++i) {
    scanf("%lf", &g[i]);
    double st = g[i] - t * v;
    double en = g[i];
    if (st < 0) {
      addseg(st + 2 * l, 2 * l);
      addseg(0, en);
    } else
      addseg(st, en);
  }
  sort(f + 1, f + m + 1, cmp);
  for (int i = 1, now = 0; i <= m; ++i) {
    if (now) res[now] += f[i].p - f[i - 1].p;
    now += f[i].v;
  }
  res[0] = 1;
  for (int i = 1; i <= n; ++i) {
    res[i] /= 2.0 * l;
    res[0] -= res[i];
  }
  for (int i = 0; i <= n; ++i) printf("%.17lf\n", res[i]);
  return 0;
}
