#include <bits/stdc++.h>
template <typename T1, typename T2>
std::istream& operator>>(std::istream& is, std::pair<T1, T2>& v) {
  return is >> v.first >> v.second;
}
template <typename T>
std::istream& operator>>(std::istream& is, std::vector<T>& v) {
  for (T& i : v) is >> i;
  return is;
}
template <typename T1, typename T2>
std::ostream& operator<<(std::ostream& os, const std::pair<T1, T2>& v) {
  return os << v.first << " " << v.second;
}
template <typename T>
std::ostream& operator<<(std::ostream& os, const std::vector<T>& v) {
  int n = (int)v.size();
  for (int i = 0; i < n; ++i) os << v[i] << (i == n - 1 ? "" : " ");
  return os;
}
template <typename T>
void in(T& x) {
  std::cin >> x;
}
template <typename T1, typename... T2>
void in(const T1 H, const T2... T) {
  std::cin >> (H);
  in(T...);
}
template <typename T>
void out(const T H) {
  std::cout << (H);
}
template <typename T1, typename... T2>
void out(const T1 H, const T2... T) {
  std::cout << (H) << " ";
  out(T...);
}
template <typename T>
void eout(const char* s, const T H) {
  std::cerr << s << "=" << H << "\n";
}
template <typename T1, typename... T2>
void eout(const char* s, const T1 H, const T2... T) {
  while (*s != ',') std::cerr << *s++;
  std::cerr << "=" << H << " | ";
  eout(++s, T...);
}
const int INF = 2147483647;
const long long int LNF = 9223372036854775807LL;
using ll = long long int;
using vi = std::vector<int>;
using vb = std::vector<bool>;
using ii = std::pair<int, int>;
using iii = std::pair<ii, int>;
using vii = std::vector<ii>;
const int N = 505050;
const int MD = 1000 * 1000 * 1000 + 7;
int solve();
int main() {
  std::ios_base::sync_with_stdio(0);
  std::cin.tie(0);
  solve();
  return 0;
}
int solve() {
  int n;
  in(n);
  vi v(n);
  in(v);
  std::sort((v).rbegin(), (v).rend());
  double s = v[0];
  for (int i = 0; i < (n - 1); ++i) {
    s = (s + v[i + 1]) / 2.0;
  }
  out(s);
  return 0;
}
