
#include <iostream>      // cout, endl, cin
#include <string>        // string, to_string, stoi
#include <vector>        // vector
#include <algorithm>     // min, max, swap, sort, reverse, lower_bound, upper_bound
#include <utility>       // pair, make_pair
#include <tuple>         // tuple, make_tuple
#include <cstdint>       // int64_t, int*_t
#include <cstdio>        // printf
#include <map>           // map
#include <queue>         // queue, priority_queue
#include <set>           // set
#include <stack>         // stack
#include <deque>         // deque
#include <unordered_map> // unordered_map
#include <unordered_set> // unordered_set
#include <bitset>        // bitset
#include <cctype>        // isupper, islower, isdigit, toupper, tolower
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main()
{
#include <bits/stdc++.h>
  using namespace std;

  int main()
  {
    int n;
    cin >> n;
    vector<double> vec(n + 1);
    cout << fixed << setprecision(6);
    for (int i = 1; i <= n; i++)
    {
      cin >> vec[i];
    }
    double ans = 0;
    for (int i = 1; i < n; i++)
    {

      sort(vec.begin(), vec.end());
      ans = (vec[i] + vec[i + 1]) / 2;
      vec[i + 1] = ans;
    }
    cout << vec[n] << endl;
  }