#include <bits/stdc++.h>
using namespace std;
const int N = 300005;
int n;
struct Node {
  int pos, v;
} a[N];
int pre[N], nxt[N];
int main() {
  ios::sync_with_stdio(false);
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i].v, a[i].pos = i;
  sort(a + 1, a + n + 1, [](Node a, Node b) { return a.v < b.v; });
  for (int i = 1; i <= n; i++) pre[i] = i - 1, nxt[i] = i + 1;
  double ans = 0;
  for (int i = 1; i <= n; i++) {
    int pos = a[i].pos, l = pos, r = pos;
    double cur = 0.5, lv = 0, rv = 0;
    for (int _ = 1; _ <= 60; _++, cur /= 2) {
      if (l) lv += cur * (l - pre[l]), l = pre[l];
      if (r <= n) rv += cur * (nxt[r] - r), r = nxt[r];
    }
    ans += lv * rv * a[i].v * 2;
    nxt[pre[pos]] = nxt[pos];
    pre[nxt[pos]] = pre[pos];
  }
  printf("%.8lf", ans / n / n);
  return 0;
}
