#include <bits/stdc++.h>
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const long long int LINF = 1e18;
const double EPS = 1.0 / LINF;
const char ENDL = '\n';
template <class T>
inline bool chmin(T &a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmax(T &a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
long long int gcd(long long int a, long long int b) {
  return b ? gcd(b, a % b) : a;
}
using namespace std;
int N;
priority_queue<double, vector<double>, greater<double>> pq;
int main() {
  cin >> N;
  for (int i = 0; i < N; ++i) {
    int tmp;
    cin >> tmp;
    pq.push(tmp);
  }
  while (pq.size() > 1) {
    int x = pq.top();
    pq.pop();
    int y = pq.top();
    pq.pop();
    pq.push((x + y) / 2.0);
  }
  cout << pq.top() << endl;
}
