#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
struct Node {
  long long sum;
  int cnt;
};
vector<Node> a;
int main() {
  int n;
  scanf("%d", &n);
  long long tmp;
  scanf("%lld", &tmp);
  a.push_back({tmp, 1});
  for (int i = 2; i <= n; i++) {
    scanf("%lld", &tmp);
    long long sum = tmp;
    int cnt = 1;
    while (!a.empty()) {
      if (a[a.size() - 1].sum * cnt < sum * a[a.size() - 1].cnt) break;
      sum += a[a.size() - 1].sum;
      cnt += a[a.size() - 1].cnt;
      a.pop_back();
    }
    a.push_back({sum, cnt});
  }
  for (Node item : a) {
    int t = item.cnt;
    while (t--) printf("%.12lf\n", item.sum / (double)item.cnt);
  }
  return 0;
}
