#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007, dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0};
const double eps = 1e-8;
void read(int &k) {
  k = 0;
  char x = getchar();
  while (x < '0' || x > '9') x = getchar();
  while (x >= '0' && x <= '9') {
    k = k * 10 - 48 + x;
    x = getchar();
  }
}
int n;
double a[110], ans;
int main() {
  scanf("%d", &n);
  for (int i = 0; i <= n; i++) scanf("%lf", a + i);
  if (~n & 1) ans = a[n / 2];
  for (int i = 0; i * 2 <= n; i++)
    for (int j = n; j > n / 2; j--)
      ans = max(ans, ((n - 2 * i) * a[j] + (2 * j - n) * a[i]) / (2 * (j - i)));
  printf("%.9lf\n", ans);
  return 0;
}
