#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const double eps = 1e-9;
const int maxn = 3e5 + 10;
const int maxT = 100;
int a[maxn], nex[maxn], pre[maxn], rk[maxn];
bool cmp(const int &lhs, const int &rhs) {
  return a[lhs] == a[rhs] ? lhs < rhs : a[lhs] < a[rhs];
}
inline int read() {
  int x = 0, flag = 1;
  char ch = getchar();
  while (!isdigit(ch) && ch != '-') ch = getchar();
  if (ch == '-') flag = -1, ch = getchar();
  while (isdigit(ch)) x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
  return x * flag;
}
int main() {
  int i, j, k, m, n;
  n = read();
  for (i = 1; i <= n; i++) a[i] = read();
  for (i = 1; i <= n; i++) rk[i] = i;
  sort(rk + 1, rk + n + 1, cmp);
  for (i = 1; i <= n; i++) nex[i] = i + 1, pre[i] = i - 1;
  double ans = 0;
  for (i = 1; i <= n; i++) {
    int pos = rk[i], l = pos, r = pos;
    double sum1 = 0, sum2 = 0, w = 1;
    for (j = 1; j <= maxT; j++) {
      if (l >= 1) sum1 += w * (l - pre[l]), l = pre[l];
      if (r <= n) sum2 += w * (nex[r] - r), r = nex[r];
      w *= 0.5;
    }
    ans += 0.5 * a[pos] * sum1 * sum2;
    nex[pre[pos]] = nex[pos];
    pre[nex[pos]] = pre[pos];
  }
  printf("%.10lf\n", ans / (1ll * n * n));
  return 0;
}
