#include <bits/stdc++.h>
using namespace std;
int i, j, k, n, m;
int id[300010], f[300010], g[300010];
double b[300010], an;
inline bool cc1(const int &A, const int &B) { return b[A] < b[B]; }
int getg(int x) { return g[x] == x ? x : g[x] = getg(g[x]); }
int getf(int x) { return f[x] == x ? x : f[x] = getf(f[x]); }
int main() {
  scanf("%d", &n);
  for (i = 1; i <= n; i++) scanf("%lf", &b[i]), id[i] = f[i] = g[i] = i;
  f[n + 1] = n + 1;
  sort(id + 1, id + n + 1, cc1);
  for (i = 1; i <= n; i++) {
    int A = id[i];
    double s = 0, tmp = 0.5;
    for (j = A, k = 1; j && k <= 40; k++) {
      int B = getg(j - 1);
      s += tmp * (j - B);
      j = B;
      tmp /= 2;
    }
    tmp = 1;
    for (j = A, k = 1; j <= n && k <= 40; k++) {
      int B = getf(j + 1);
      an += tmp * (B - j) * s * b[A];
      j = B;
      tmp /= 2;
    }
    g[A] = A - 1;
    f[A] = A + 1;
  }
  printf("%.10lf\n", an / n / n);
  return 0;
}
