#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void chkmin(T &a, T b) {
  if (a > b) a = b;
}
template <class T>
inline void chkmax(T &a, T b) {
  if (a < b) a = b;
}
int N, a[310000];
pair<int, int> p[310000];
set<int> st;
double calc(int u) {
  double c1, c2, wei;
  int cnt, pre;
  set<int>::iterator it;
  st.insert(u);
  c1 = 0;
  cnt = 0;
  wei = 1;
  for (it = st.find(pre = u); cnt < 50; pre = *it) {
    if (*it == -1) break;
    it--;
    cnt++;
    c1 += wei * (pre - *it);
    wei /= 2;
  }
  c2 = 0;
  cnt = 0;
  wei = 1;
  for (it = st.find(pre = u); cnt < 50; pre = *it) {
    if (*it == N) break;
    it++;
    cnt++;
    c2 += wei * (*it - pre);
    wei /= 2;
  }
  return c1 * c2;
}
int main() {
  int i;
  double ans;
  scanf("%d", &N);
  for (i = 0; i < N; i++) {
    scanf("%d", &a[i]);
    p[i] = pair<int, int>(-a[i], i);
  }
  st.insert(-1);
  st.insert(N);
  sort(p, p + N);
  for (i = 0; i < N; i++) ans += calc(p[i].second) * a[p[i].second];
  printf("%.10lf\n", ans / 2 / N / N);
  return 0;
}
