#include <bits/stdc++.h>
inline int read() {
  char c, _c;
  int x;
  for (c = _c = getchar(); !isdigit(c); c = getchar()) {
    _c = c;
  }
  for (x = 0; isdigit(c); c = getchar()) {
    x = x * 10 + c - '0';
  }
  return _c == '-' ? -x : x;
}
const int N = 1e6 + 5;
int n, vol, a[N], s[N], t[N];
long long pre[N];
double ans[N];
inline double get(int l, int r) {
  return (double)(pre[r] - pre[l - 1]) / (r - l + 1);
}
int main() {
  n = read();
  for (int i = 1; i <= n; i++) {
    a[i] = read();
    pre[i] = pre[i - 1] + a[i];
  }
  for (int i = 1; i <= n; i++) {
    ++vol;
    s[vol] = i;
    t[vol] = i;
    while (vol > 1) {
      if (get(s[vol - 1], t[vol - 1]) > get(s[vol - 1], t[vol])) {
        vol--;
        t[vol] = t[vol + 1];
      } else {
        break;
      }
    }
  }
  for (int i = 1; i <= vol; i++) {
    for (int j = s[i]; j <= t[i]; j++) {
      ans[j] = get(s[i], t[i]);
    }
  }
  for (int i = 1; i <= n; i++) {
    printf("%.10f\n", ans[i]);
  }
  return 0;
}
