#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize(3)
void solve() {
  long long n;
  cin >> n;
  vector<long long> a(n + 1), mi(n + 1);
  mi[n] = n;
  vector<long long> presum(n + 1, 0);
  for (long long i = 1; i <= n; i++) {
    cin >> a[i];
    presum[i] = presum[i - 1] + a[i];
  }
  vector<long double> ret(n + 1);
  vector<pair<int, int>> v;
  for (int i = 1; i <= n;) {
    long long j = i + 1, sum = a[i];
    while (j <= n && a[j] <= a[j - 1]) {
      sum += a[j + 1];
      j++;
    }
    while (!v.empty()) {
      auto bk = v.back();
      ((void)0);
      if ((presum[bk.second - 1] - presum[bk.first - 1]) * (j - i) >=
          (presum[j - 1] - presum[i - 1]) * (bk.second - bk.first)) {
        v.pop_back();
        i = bk.first;
      } else
        break;
    }
    v.push_back(make_pair(i, j));
    i = j;
  }
  for (auto& p : v) {
    long double val =
        (long double)(presum[p.second - 1] - presum[p.first - 1]) /
        (long double)(p.second - p.first);
    for (int i = p.first; i < p.second; i++) {
      ret[i] = val;
    }
  }
  for (int i = 1; i <= n; i++) {
    printf("%.10Lf\n", ret[i]);
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  solve();
  return 0;
}
