#include <bits/stdc++.h>
using namespace std;
int a[1000100];
struct Q {
  double mean;
  int num;
} q[1000100];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
  }
  int k = 1;
  for (int i = n; i >= 1; i--) {
    q[k].mean = a[i];
    q[k].num = 1;
    for (int j = i - 1; j >= 1; j--) {
      if (a[j] < a[j + 1]) break;
      q[k].mean = (q[k].mean * q[k].num + a[j]) / (double)(q[k].num + 1);
      q[k].num++;
      i = j;
    }
    while (k > 1) {
      if (q[k].mean >= q[k - 1].mean) {
        q[k - 1].mean = (q[k].mean * q[k].num + q[k - 1].mean * q[k - 1].num) /
                        (q[k - 1].num + q[k].num);
        q[k - 1].num += q[k].num;
        k--;
      } else {
        break;
      }
    }
    k++;
  }
  for (int i = k - 1; i >= 1; i--) {
    for (int j = q[i].num; j >= 1; j--) {
      printf("%.9f\n", q[i].mean);
    }
  }
}
