#include <bits/stdc++.h>
using namespace std;
const int N = 300005;
const int mo = 1000000007;
inline int IN() {
  char ch;
  (ch = getchar());
  int f = 0, x = 0;
  for (; ((ch) == '\n' || (ch) == '\r' || (ch) == '\t' || (ch) == ' ');
       (ch = getchar()))
    ;
  if (ch == '-') f = 1, (ch = getchar());
  for (; !((ch) == '\n' || (ch) == '\r' || (ch) == '\t' || (ch) == ' ');
       (ch = getchar()))
    x = x * 10 + ch - '0';
  return (f) ? (-x) : (x);
}
int Pow(int x, int y, int p) {
  int A = 1;
  for (; y; y >>= 1, x = (long long)x * x % p)
    if (y & 1) A = (long long)A * x % p;
  return A;
}
int n, b[N], l[N], r[N];
double a[N], ans;
inline int cmp(const int &A, const int &B) { return a[A] < a[B]; }
int main() {
  scanf("%d", &n);
  for (int i = (int)1; i <= (int)n; i++) scanf("%lf", a + i);
  for (int i = (int)1; i <= (int)n; i++) b[i] = i;
  sort(b + 1, b + n + 1, cmp);
  for (int i = (int)1; i <= (int)n; i++) l[i] = i - 1, r[i] = i + 1;
  for (int i = (int)1; i <= (int)n; i++) {
    int x = b[i];
    double resL = 0, resR = 0, z = 1;
    int L = x, R = x;
    for (int c = (int)1; c <= (int)60; c++) {
      if (L) resL += (L - l[L]) * z, L = l[L];
      if (R <= n) resR += (r[R] - R) * z, R = r[R];
      z *= .5;
    }
    r[l[x]] = r[x];
    l[r[x]] = l[x];
    l[x] = r[x] = 0;
    ans += resL * resR * a[x] * .5;
  }
  printf("%.10lf\n", ans / n / n);
  return 0;
}
