#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-9;
int main() {
  int n, l, v1, v2;
  scanf("%d%d%d%d", &n, &l, &v1, &v2);
  vector<long long> a(n * 2);
  for (int i = 0; i < (n); ++i) {
    int t;
    scanf("%d", &t);
    a[i] = t;
    a[i + n] = (long long)t + l * 2;
  }
  double len = (double)l / (v1 + v2) * v2;
  vector<double> ps;
  ps.push_back(0);
  ps.push_back(l * 2);
  for (int i = 0; i < (n); ++i) {
    ps.push_back(a[i]);
    if (a[i] > len)
      ps.push_back(a[i] - len);
    else
      ps.push_back(a[i] - len + 2 * l);
  }
  sort(ps.begin(), ps.end());
  ps.erase(unique(ps.begin(), ps.end()), ps.end());
  int m = ps.size();
  vector<double> ans(n + 1);
  double prev = 0.0;
  for (int i = 0; i < (m); ++i) {
    double st = ps[i], ed = st + len;
    long long x = (long long)(ceil(st) + eps);
    long long y = (long long)(ceil(ed - eps) + eps);
    int c =
        lower_bound(a.begin(), a.end(), y) - lower_bound(a.begin(), a.end(), x);
    ans[c] += st - prev;
    prev = st;
  }
  for (int i = 0; i <= n; ++i) {
    printf("%.13lf\n", ans[i] / (l * 2.0));
  }
  return 0;
}
