#include <bits/stdc++.h>
using namespace std;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
void debug_print() {}
template <class Head, class... Tail>
void debug_print(Head &&head, Tail &&...tail) {
  cout << (head) << '\n';
  debug_print(forward<Tail>(tail)...);
}
double mx;
void func(int i, vector<double> tvd, double s, int size) {
  if (mx >= (double)std::accumulate(tvd.begin(), tvd.end(), 0) / (size + 1))
    return;
  if (size == 0) {
    chmax(mx, (double)tvd[0]);
    return;
  }
  vector<double> t = tvd;
  int base = t[i];
  t.erase(t.begin() + i);
  for (int j = 0; j < size; j++) {
    int p = t[0];
    double p2 = (base + t[0]) / (double)2.0;
    t.erase(t.begin());
    t.push_back(p2);
    func(j, t, p2, size - 1);
    t.pop_back();
    t.push_back(p);
  }
}
int i, j, k;
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  vector<double> vdd(n);
  for (int i = 0; i < n; i++) cin >> vdd[i];
  for (int i = 0; i < n; i++) {
    func(i, vdd, 0, n - 1);
  }
  cout << mx << '\n';
  return 0;
}
