#include <bits/stdc++.h>
using namespace std;
char p[30] = {'0', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
              'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
              'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
inline int rd() {
  int x = 0, flag = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') flag = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + (ch ^ 48);
    ch = getchar();
  }
  return x * flag;
}
int n, a[1000010], top, l[1000010], r[1000010];
long long s[1000010];
inline int lowbit(int x) { return x & (-x); }
int main() {
  n = rd();
  for (register int i = 1; i <= n; ++i) a[i] = rd();
  top++;
  s[top] = a[1], l[top] = 1, r[top] = 1;
  for (register int i = 2; i <= n; ++i) {
    long long sum = a[i], len = 1;
    while (top && s[top] * len >= sum * (r[top] - l[top] + 1)) {
      sum += s[top];
      len += r[top] - l[top] + 1;
      top--;
    }
    top++;
    s[top] = sum;
    r[top] = i, l[top] = i - len + 1;
  }
  for (register int i = 1; i <= top; ++i) {
    double ave = (double)s[i] / (r[i] - l[i] + 1);
    for (register int j = l[i]; j <= r[i]; ++j) printf("%.9lf\n", ave);
  }
  return 0;
}
