// If you want something you've never had, you must be willing to do something you've never done

#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

typedef pair<int,int> ii;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
typedef tree<pair<int,int>, null_type,less<pair<int, int> >,rb_tree_tag,tree_order_statistics_node_update > pbds;

#define debug(x) cout<<#x<<" :: "<<x<<endl;
#define debug2(x,y) cout<<#x<<" :: "<<x<<"\t"<<#y<<" :: "<<y<<endl;
#define debug3(x,y,z) cout<<#x<<" :: "<<x<<"\t"<<#y<<" :: "<<y<<"\t"<<#z<<" :: "<<z<<endl;
#define debug4(x,y,z,w) cout<<#x<<" :: "<<x<<"\t"<<#y<<" :: "<<y<<"\t"<<#z<<" :: "<<z<<"\t"<<#w<<" :: "<<w<<endl;
#define ROUNDOFFINT(d) d = (int)((double)d + 0.5)

#define pb push_back
#define ft first
#define sd second
#define all(c)    (c).begin(),(c).end()
#define tr(c,i)   for(typeof((c).begin() i = (c).begin(); i != (c).end(); i++)
#define present(c,x)   ((c).find(x) != (c).end())
#define IOS ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);

ll poww(ll a,ll b){ll res=1;while(b){if(b&1){res*=a;}a=a*a;b>>=1;}return res;}
ll poww(ll a,ll b,ll mod){ll res=1;while(b){if(b&1){res*=a;res%=mod;}a=a*a;a%=mod;b>>=1;}return res;}

const int INF = 2e9 ;
const int dx[] = {-1,0,0,1};
const int dy[] = {0,-1,1,0};
const int lg = 21;
const ll MOD = 1e9 + 7;
#define int ll
int n, m;
const int N = 1e5 + 5;


signed main() {
    int n;
    cin >> n;
    double a[n+4];
    set<double> st;
    for(int i=1; i<=n; i++) {
        cin >> a[i];
        st.insert(a[i]);
    }
    while((int)st.size() > 1) {
        auto a = *(st.begin());
        st.erase(st.begin());
        auto b = *(st.begin());
        st.erase(st.begin());
        auto c = (a + b)/2;
        st.insert(c);
    }
    cout << *(st.begin()) << '\n';
    return 0;
}