#include <bits/stdc++.h>
using namespace std;
void err(istream_iterator<string> it) {}
template <typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
  cerr << ' ' << *it << " = " << a;
  err(++it, args...);
}
const long long MOD = 1e9 + 7;
const int N = 1e6 + 9, M = (1 << 31), OO = 0x3f3f3f3f;
priority_queue<double, vector<double>, greater<double>> pq;
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    double x;
    scanf("%lf", &x);
    pq.push(x);
  }
  double res = 0;
  while (!pq.empty()) {
    double x, y;
    x = pq.top();
    pq.pop();
    y = pq.top();
    pq.pop();
    res = (x + y) / 2;
    if (pq.empty()) break;
    pq.push(res);
  }
  printf("%.5lf", res);
  return 0;
}
