#include <bits/stdc++.h>
using namespace std;
int n;
double p[1000];
const int cc = 2;
double a[201][cc * 101][cc * 101];
double get(int IT) {
  for (int it = 0; it <= IT; it++)
    for (int i = 0; i <= cc * n; i++)
      for (int j = 0; j <= cc * n; j++) a[it][i][j] = -100;
  for (int i = 0; i <= cc * n; i++)
    for (int j = 0; j <= min(n, i); j++)
      a[0][i][min(cc * n, i - j + n - j)] =
          max(a[0][i][min(cc * n, i - j + n - j)], p[j]);
  for (int it = 1; it <= IT; it++) {
    for (int i = 0; i <= cc * n; i++)
      for (int j = 0; j <= cc * n; j++)
        for (int k = 0; k <= cc * n; k++)
          a[it][i][k] =
              max(a[it][i][k], (a[it - 1][i][j] + a[it - 1][j][k]) / 2);
  }
  double ans = 0;
  for (int i = 0; i <= cc * n; i++) ans = max(ans, a[IT][0][i]);
  return ans;
}
int main() {
  cin >> n;
  for (int i = 0; i <= n; i++) {
    cin >> p[i];
  }
  printf("%.18lf\n", (double)get(30));
  return 0;
}
