#include <bits/stdc++.h>
using namespace std;
int N, i, j, B[300010];
pair<int, int> U[300010];
int W[300010];
bool Cmp_pii(pair<int, int> p, pair<int, int> q) {
  if (p.first != q.first)
    return (p.first > q.first);
  else
    return (p.second < q.second);
}
const int DEP = 60;
long double Rate[DEP + 5], ANS, Lc, Rc;
int L[300010], R[300010], x, y;
void Delete_element(int x) {
  L[R[x]] = L[x];
  R[L[x]] = R[x];
}
int main() {
  scanf("%d", &N);
  for (i = 1; i <= N; i++) scanf("%d", &B[i]);
  Rate[0] = 1;
  for (i = 1; i <= DEP; i++) Rate[i] = Rate[i - 1] / 2;
  for (i = 1; i <= N; i++) U[i] = make_pair(B[i], i);
  sort(U + 1, U + N + 1, Cmp_pii);
  for (i = 1; i <= N; i++) W[U[i].second] = i;
  ANS = 0;
  for (i = 0; i <= N; i++) {
    R[i] = i + 1;
    L[i + 1] = i;
  }
  for (i = N; i; i--) {
    int w = U[i].second;
    x = y = w;
    Lc = Rc = 0;
    for (j = 0; j <= DEP; j++) {
      if (x >= 1) {
        Lc += Rate[j] * (x - L[x]);
        x = L[x];
      }
      if (y <= N) {
        Rc += Rate[j] * (R[y] - y);
        y = R[y];
      }
    }
    Delete_element(w);
    ANS += 0.5 * Lc * Rc * (U[i].first);
  }
  ANS /= N;
  ANS /= N;
  printf("%.9f\n", double(ANS));
}
