#include <bits/stdc++.h>
using namespace std;
void read(long long &x) { scanf("%lld", &x); }
void read(long long &x, long long &y) { scanf("%lld%lld", &x, &y); }
void read(long long &x, long long &y, long long &z) {
  scanf("%lld%lld%lld", &x, &y, &z);
}
void print(long long x) { printf("%lld ", x); }
void println(long long x) { printf("%lld\n", x); }
const long long N = 1000100;
long long n, p[4 * N], last, sz, q[N], len;
int x;
double a[N], s[N], t[4 * N], mn, sum[N];
pair<double, long long> cur;
void build(long long v, long long l, long long r) {
  if (l == r) {
    t[v] = s[l] / l;
    p[v] = l;
    return;
  }
  long long mid = (l + r) / 2;
  build(v * 2, l, mid);
  build(v * 2 + 1, mid + 1, r);
  t[v] = min(t[v * 2], t[v * 2 + 1]);
  if (t[v * 2] < t[v * 2 + 1])
    p[v] = p[v * 2];
  else
    p[v] = p[v * 2 + 1];
}
pair<double, long long> get(long long v, long long l, long long r, long long x,
                            long long y) {
  if (x > r || y < l) return {2e9, 0};
  if (x <= l && r <= y) return {t[v], -p[v]};
  long long mid = (l + r) / 2;
  return min(get(v * 2, l, mid, x, y), get(v * 2 + 1, mid + 1, r, x, y));
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (long long i = 1; i <= n; i++)
    cin >> x, a[i] = x, s[i] = s[i - 1] + a[i], p[i] = i;
  for (long long i = 1; i <= n; i++) {
    mn = a[i];
    len = 1;
    while (sz > 0 && sum[sz] >= mn) {
      mn *= len;
      mn += sum[sz] * q[sz];
      mn /= len + q[sz];
      len += q[sz];
      sz--;
    }
    sz++;
    q[sz] = len;
    sum[sz] = mn;
  }
  for (long long i = 1; i <= sz; i++)
    for (long long j = 1; j <= q[i]; j++)
      cout << fixed << setprecision(12) << sum[i] << "\n";
}
