#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 7;
const int MOD = 1e9 + 7;
const int dx[4] = {0, 0, -1, 1};
const int dy[4] = {-1, 1, 0, 0};
const int N = 1e6 + 1;
struct Point {
  long long x, y;
  Point(long long x = 0, long long y = 0) : x(x), y(y) {}
  long long operator*(const Point &p) { return x * p.y - y * p.x; }
  Point operator-(const Point &p) { return Point(x - p.x, y - p.y); }
};
Point p[N];
bool CCW(Point &a, Point &b, Point &c) { return (b - a) * (c - b) > 0; }
long long n, psum[N];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  p[0] = Point(0, 0);
  psum[0] = 0;
  for (int i = 1; i <= n; i++) {
    int x;
    cin >> x;
    psum[i] = psum[i - 1] + x;
    p[i] = Point(i, psum[i]);
  }
  vector<int> memo;
  int m = 0;
  for (int i = 0; i <= n; i++) {
    while (m >= 2 && !CCW(p[memo[m - 2]], p[memo[m - 1]], p[i])) {
      memo.pop_back();
      m--;
    }
    m++;
    memo.push_back(i);
  }
  int ptr = 0;
  double pre = 0.00, res;
  cout << fixed << setprecision(10);
  for (int i = 1; i <= n; i++) {
    while (!(memo[ptr] <= i && i <= memo[ptr + 1])) ptr++;
    int u = memo[ptr];
    int v = memo[ptr + 1];
    long long cur = p[v].y - p[u].y;
    res = (1.00 * cur / (v - u)) * (i - u) + psum[u] - pre;
    pre += res;
    cout << res << '\n';
  }
  return 0;
}
