#include <bits/stdc++.h>
struct Node {
  long long x, y;
};
Node st[1000005];
int a[1000005];
long long s[1000005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    s[i] = s[i - 1] + a[i];
  }
  int ln = 0;
  st[++ln] = (Node){0, 0};
  st[++ln] = (Node){1, s[1]};
  for (int i = 2; i <= n; i++) {
    while (ln >= 2) {
      if (1.0 * (s[i] - st[ln].y) / (i - st[ln].x) <
          1.0 * (st[ln].y - st[ln - 1].y) / (st[ln].x - st[ln - 1].x))
        ln--;
      else
        break;
    }
    st[++ln] = (Node){i, s[i]};
  }
  int now = 1;
  double ans;
  for (int i = 1; i <= n; i++) {
    if (i > st[now].x) {
      ans = 1.0 * (st[now + 1].y - st[now].y) / (st[now + 1].x - st[now].x);
      now++;
    }
    printf("%.12lf\n", ans);
  }
}
