#include <bits/stdc++.h>
using namespace std;
const int max_n = 100005;
const double inf = 1e10;
const double eps = 1e-10;
int n;
double l, v1, v2;
double a[max_n];
double d[max_n];
double func(double x) {
  if (x + eps >= 2.0 * l) x -= (2.0 * l);
  return x;
}
int main() {
  cin >> n >> l >> v1 >> v2;
  for (int i = 0; i < n; i++) cin >> a[i];
  sort(a, a + n);
  vector<pair<double, int> > V;
  V.push_back(make_pair(0.0, 0));
  V.push_back(make_pair(2 * l, 0));
  double dist = v2 * l / (v1 + v2);
  for (int i = 0; i < n; i++) {
    double f = func(dist - a[i] + 2 * l);
    V.push_back(make_pair(f, -1));
    V.push_back(make_pair(2 * l - a[i], 1));
  }
  int N = V.size();
  sort(V.begin(), V.end());
  int cnt = 0;
  for (int i = 0; i < n; i++)
    if (a[i] < dist) cnt++;
  double prev = 0.0;
  for (int i = 1; i < N; i++) {
    d[cnt] += V[i].first - prev;
    prev = V[i].first;
    cnt += V[i].second;
  }
  for (int i = 0; i <= n; i++) printf("%.10f\n", d[i] / (2.0 * l));
  return 0;
}
