#include <bits/stdc++.h>
const double EPS = -1;
double ans[100009 + 1];
int a[100009 + 1];
std::pair<double, int> ev[2 * 100009 + 1];
int main() {
  int n, l, v1, v2;
  fscanf(stdin, "%d%d%d%d", &n, &l, &v1, &v2);
  for (int i = 1; i <= n; i++) fscanf(stdin, "%d", &a[i]);
  std::sort(a + 1, a + n + 1);
  for (int i = n; i > 0; i--) a[i] -= a[1];
  double lim = (1LL * l * v2) / (double)(v1 + v2);
  int sum = 0;
  for (int i = 1; i <= n; i++) {
    if (a[i] < lim) {
      sum++;
      ev[2 * i - 1] = std::make_pair((lim - a[i]) / v1, -1);
      ev[2 * i] = std::make_pair((2 * l - a[i]) / (double)v1, 1);
    } else {
      ev[2 * i - 1] = std::make_pair((2 * l - a[i]) / (double)v1, 1);
      ev[2 * i] = std::make_pair((2 * l + lim - a[i]) / v1, -1);
    }
  }
  std::sort(ev + 1, ev + 2 * n + 1);
  int p = 1;
  double fac = 0;
  while (p <= 2 * n) {
    double t = ev[p].first, t1 = ev[p - 1].first;
    ans[sum] += t - t1;
    sum += ev[p].second;
    p++;
    fac += t - t1;
  }
  for (int i = 0; i <= n; i++) ans[i] /= fac;
  for (int i = 0; i <= n; i++) fprintf(stdout, "%.15f\n", ans[i]);
  fclose(stdin);
  fclose(stdout);
  return 0;
}
