#include <bits/stdc++.h>
using namespace std;
const int MAXN = 111111;
int tmp, n, i, j, v1, v2, cnt;
long long l, L, V;
long long q[MAXN * 2], a[MAXN], ans[MAXN];
map<long long, int> ma;
int main() {
  scanf("%d%d%d%d", &n, &tmp, &v1, &v2);
  l = tmp;
  L = l * v2;
  l *= 2LL * (v1 + v2);
  j = 0;
  for ((i) = +0; (i) < (int)(n); ++(i)) {
    scanf("%d", &tmp);
    q[j++] = a[i] = (long long)tmp * (v1 + v2);
    q[j++] = (a[i] + l - L) % l;
    ma[a[i]]++;
  }
  sort(q, q + j);
  j = unique(q, q + j) - q;
  cnt = 0;
  for ((i) = +0; (i) < (int)(n); ++(i))
    if (q[0] <= a[i] && a[i] <= q[0] + L) cnt++;
  for ((i) = 1 + 0; (i) < (int)(j + 1); ++(i)) {
    cnt -= ma[q[(i + j - 1) % j]];
    ans[cnt] += (q[i % j] - q[(i + j - 1) % j] + l) % l;
    cnt += ma[(q[i % j] + L) % l];
  }
  for ((i) = +0; (i) < (int)(n + 1); ++(i))
    printf("%.20lf\n", (double)ans[i] / l);
  return 0;
}
