#include <bits/stdc++.h>
using namespace std;
long long rr[] = {0, 1, 1, 1, 0, -1, -1, -1};
long long cc[] = {1, 1, 0, -1, -1, -1, 0, 1};
const long long mod = 1e9 + 7;
const long long N = 1000050;
long double a[N], small = 1e-10;
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  long long test = 1;
  while (test--) {
    long long n;
    cin >> n;
    for (long long i = 0; i < n; i++) {
      long long temp;
      cin >> temp;
      a[i] = temp;
    }
    stack<pair<long double, long long> > st;
    st.push({a[0], 1});
    for (long long i = 1; i < n; i++) {
      long double X = a[i];
      long long cnt = 1;
      while (!st.empty() && st.top().first + small > X) {
        X = 1.0 * (st.top().first * st.top().second + X * cnt) /
            (cnt + st.top().second);
        cnt = cnt + st.top().second;
        st.pop();
      }
      st.push({X, cnt});
    }
    vector<pair<long double, long long> > ans;
    while (!st.empty()) {
      ans.push_back(st.top());
      st.pop();
    }
    reverse(ans.begin(), ans.end());
    cout << fixed << setprecision(10);
    for (auto it : ans) {
      for (long long i = 0; i < it.second; i++) {
        cout << it.first << '\n';
      }
    }
  }
  return 0;
}
