#include <bits/stdc++.h>
using namespace std;
int main() {
  cout.precision(20);
  cout << fixed;
  ios_base::sync_with_stdio(0);
  cout.tie(0);
  cin.tie(0);
  vector<double> pow(1000);
  pow[0] = 1;
  for (int i = 1; i < 1000; i++) {
    pow[i] = pow[i - 1] * 2;
  }
  int n, k = 40;
  cin >> n;
  vector<pair<int, int>> v(n);
  for (int i = 0; i < n; i++) {
    cin >> v[i].first;
    v[i].first = -v[i].first;
    v[i].second = i;
  }
  sort(v.begin(), v.end());
  set<int> s;
  double ans = 0;
  vector<int> left(65);
  vector<int> right(65);
  int leftSize, rightSize;
  for (int i = 0; i < n; i++) {
    auto x = s.lower_bound(v[i].second);
    leftSize = rightSize = 0;
    left[leftSize++] = -1;
    left[leftSize++] = v[i].second;
    right[rightSize++] = n;
    right[rightSize++] = v[i].second;
    auto y = x;
    for (int j = 0; y != s.begin() && j < k; j++) {
      y--;
      left[leftSize++] = *y;
    }
    y = x;
    for (int j = 0; y != s.end() && j < k; j++) {
      right[rightSize++] = *y;
      y++;
    }
    sort(left.begin(), left.begin() + leftSize);
    sort(right.begin(), right.begin() + rightSize);
    for (int a = 0; a + 1 < leftSize; a++) {
      for (int b = 0; b + 1 < rightSize; b++) {
        int cnt = leftSize - 2 - a + b + 1;
        long long leftLen = left[a + 1] - left[a];
        long long rightLen = right[b + 1] - right[b];
        ans -= v[i].first * (leftLen * rightLen) / pow[cnt];
      }
    }
    s.insert(v[i].second);
  }
  cout << ans / n / n;
}
