#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>

using namespace std;

template<typename T>
void remove(std::vector<T>& vector, unsigned int index)
{
    vector.erase(vector.begin() + index);
}
template<typename T>
void vprint(std::vector<T>& vector)
{
  int len = int(vector.size());
  for(int i =0;i<len;i++){
    cout << vector[i] <<",";
  }
  cout <<endl;
}

double mean(double x,double y){
  return (x +y)/2;
}

int main(){
  int N;
  cin >> N;
  std::vector<double> v(N);
  for(int i = 0;i<N;i++)cin >>v[i];
  // vprint(v);
  // sort(v.begin(),v.end());
  // vprint(v);
  // remove(v,0);
  // vprint(v);
  sort(v.begin(),v.end());
  double x,y;
  for(int i = 0;i<N-1;i++){
    x = v[0];
    y = v[1];
    v[1] = (x + y)/2.0;
    remove(v,0);
  }
  // double val = 0.0;
  // int index;
  // for(int i =1;i <= N-1;i++){
  //   index = N - i;
  //   if(i == 1){
  //     val = (v[0] +v[1]) /pow(2,index);
  //   }else{
  //     val = v[i]/pow(2,index);
  //   }
  // }
  cout << val;  
  return 0;
}