#include <bits/stdc++.h>
using namespace std;
long long int mod = 998244353;
long long int dx[] = {0, 0, 1, -1};
long long int dy[] = {1, -1, 0, 0};
long long int m = 0, n, res = 0, k, ans;
string s2, ch = "", s, t, s1 = "";
vector<pair<string, long long int> > vm;
vector<pair<pair<long long int, long long int>, long long int> > vvv;
vector<pair<long long int, long long int> > vv;
vector<pair<string, long long int> > vv2;
long long int a[1000005], dp[300005], vis[300005];
vector<long long int> v1;
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  long long int i = 0, x = 0, z = 0, y = 0, j = 0, q, mx = 0, idx = 0, ok = 0,
                l = 0, r = 0, negatif = 0, positif = 0, r1, d, p;
  set<long long int>::iterator it;
  multiset<long long int>::iterator its;
  cin >> n;
  for (i = 1; i <= n; i++) cin >> a[i];
  stack<pair<long long int, long long int> > st;
  for (i = 1; i <= n; i++) {
    pair<long long int, long long int> p = {a[i], 1};
    if (st.empty())
      st.push(p);
    else {
      while (!st.empty()) {
        pair<long long int, long long int> p1 = st.top();
        long long int nb = p1.second + p.second;
        long long int sm = p1.first + p.first;
        if (p1.first * nb >= sm * p1.second) {
          st.pop();
          p.first = sm;
          p.second = nb;
        } else {
          break;
        }
      }
      st.push(p);
    }
  }
  vector<pair<long long int, long long int> > vv;
  while (!st.empty()) {
    vv.push_back(st.top());
    st.pop();
  }
  reverse(vv.begin(), vv.end());
  for (i = 0; i < vv.size(); i++) {
    for (j = 0; j < vv[i].second; j++) {
      long double ans = (vv[i].first / (long double)vv[i].second);
      cout << fixed << setprecision(9) << ans << '\n';
    }
  }
  return 0;
}
