#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:134217728")
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
int m;
int n;
vector<pair<double, int> > v;
double ans[100500];
int pos[100500];
double eps = 1e-10;
int main() {
  double l, v1, v2;
  cin >> n >> l >> v1 >> v2;
  double s = l * v2 / (v1 + v2);
  for (int i = 0; i < (n); i++) {
    scanf("%d", &pos[i]);
    double x = pos[i];
    v.push_back(make_pair(x, -(i + 1)));
    x -= s;
    if (x < 0) x += 2 * l;
    v.push_back(make_pair(x, i + 1));
  }
  v.push_back(make_pair(2 * l, 0));
  sort((v).begin(), (v).end());
  int cur = 0;
  for (int i = 0; i < (n); i++)
    if (pos[i] < s - eps) cur++;
  for (int i = 0; i < ((int)(v).size()); i++) {
    double d = v[i].first - (i ? v[i - 1].first : 0);
    ans[cur] += d;
    if (v[i].second < 0) cur--;
    if (v[i].second > 0) cur++;
  }
  for (int i = 0; i < (n + 1); i++) printf("%.10lf\n", ans[i] / (2 * l));
  return 0;
}
