#include <bits/stdc++.h>
using namespace std;
int n, l, v1, v2, a[100007];
vector<pair<double, int> > events;
double res[100007];
int main() {
  scanf("%d%d%d%d", &n, &l, &v1, &v2);
  for (int i = 0; i < (n); i++) scanf("%d", &a[i]);
  double r = (((double)l) / (v1 + v2)) * v2;
  if (r >= 2 * l) r = 2 * l;
  int beg = 0;
  for (int i = 0; i < (n); i++)
    if (a[i] <= r) {
      beg++;
      events.push_back(pair<double, int>(2 * l - r + ((double)a[i]), 1));
      events.push_back(pair<double, int>(((double)a[i]), -1));
    } else {
      events.push_back(pair<double, int>(((double)a[i]) - r, 1));
      events.push_back(pair<double, int>(((double)a[i]), -1));
    }
  sort((events).begin(), (events).end());
  double last = 0.0;
  int act = beg;
  for (__typeof((events).begin()) i = (events).begin(); i != (events).end();
       ++i) {
    res[act] += i->first - last;
    act += i->second;
    last = i->first;
  }
  res[act] += ((double)2 * l) - last;
  double tog = 2 * l;
  for (int i = 0; i < (n + 1); i++) {
    printf("%.13lf\n", res[i] / tog);
  }
  return 0;
}
