#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10, mod = 1e9 + 7;
int a[N], nxt[N], pre[N], t[N];
long long s[N];
bool mark[N];
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  cout << fixed << setprecision(12);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    s[i] = a[i];
    t[i] = 1;
    nxt[i] = i + 1;
    pre[i] = i - 1;
  }
  vector<int> v;
  for (int i = 0; i < n - 1; i++)
    if (a[i] >= a[i + 1]) {
      v.push_back(i);
      mark[i] = true;
    }
  while (v.size()) {
    int i = v.back();
    mark[i] = false;
    v.pop_back();
    if (nxt[i] == n ||
        (long double)s[i] / t[i] < (long double)s[nxt[i]] / t[nxt[i]])
      continue;
    t[i] += t[nxt[i]];
    s[i] += s[nxt[i]];
    nxt[i] = nxt[nxt[i]];
    pre[nxt[i]] = i;
    if (nxt[i] != n &&
        (long double)s[i] / t[i] >= (long double)s[nxt[i]] / t[nxt[i]]) {
      v.push_back(i);
      mark[i] = true;
    }
    if (pre[i] != -1 &&
        (long double)s[i] / t[i] <= (long double)s[pre[i]] / t[pre[i]] &&
        !mark[pre[i]]) {
      v.push_back(pre[i]);
      mark[pre[i]] = true;
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = i; j < nxt[i]; j++) cout << (long double)s[i] / (t[i]) << "\n";
    i = nxt[i] - 1;
  }
  return 0;
}
