#include <bits/stdc++.h>
using namespace std;
long long n, a[1000005];
std::vector<pair<double, pair<long long, long long> > > v;
signed main() {
  scanf("%lld", &n);
  for (long long i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
  }
  for (long long i = 1; i <= n; i++) {
    v.push_back(make_pair(1.0 * a[i], make_pair(i, i)));
    while (v.size() > 1 && v[v.size() - 1].first <= v[v.size() - 2].first) {
      double val1 = v[v.size() - 1].first;
      double val2 = v[v.size() - 2].first;
      pair<long long, long long> interval1 = v[v.size() - 1].second;
      pair<long long, long long> interval2 = v[v.size() - 2].second;
      v.pop_back();
      v.pop_back();
      v.push_back(make_pair((val1 * (interval1.second - interval1.first + 1) +
                             val2 * (interval2.second - interval2.first + 1)) /
                                (interval1.second - interval2.first + 1),
                            make_pair(interval2.first, interval1.second)));
    }
  }
  for (long long i = 0; i < v.size(); i++) {
    pair<long long, long long> interval = v[i].second;
    for (long long j = interval.first; j <= interval.second; j++) {
      printf("%.10lf\n", v[i].first);
    }
  }
  return 0;
}
