import java.io.*;
import java.util.*;

public class Main{
    
    public static void main(String[] args) throws IOException {
        Reader.init();
        int N=Reader.nextInt();
      	int V[]=new int[N];
      	read(V, N);
      	PriorityQueue<Double> PQ=new PriorityQueue();
      	for(int i:V){
        	PQ.add((double)i);
        }
      	while(PQ.size()>1){
        	double a=PQ.poll();
          	double b=PQ.poll();
          	PQ.add((a+b)/2);
        }
      	print(PQ.poll());
      
    }

    static int mod=1000000007;
    
    public static void read(int arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.nextInt(); } }
    public static void read(String arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.next(); } }
    
    public static void print(Object O){ System.out.println(O); }
    
    public static void display(int arr[]){ System.out.println(Arrays.toString(arr)); }
    public static void display(int arr[][], int N){ for(int i=0;i<N;i++){ System.out.println(Arrays.toString(arr[i])); } }
  
}

class Reader {
    static BufferedReader reader;
    static StringTokenizer tokenizer;

    static void init() {
        reader=new BufferedReader(new InputStreamReader(System.in));
        tokenizer=new StringTokenizer("");
    }

    static String next() throws IOException {
        while (!tokenizer.hasMoreTokens() ) {
            tokenizer=new StringTokenizer(reader.readLine());
        }
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException { return Integer.parseInt(next()); }
    static double nextDouble() throws IOException { return Double.parseDouble(next()); }
    static long nextLong() throws IOException { return Long.parseLong(next()); }
    static String nextLine() throws IOException { return reader.readLine(); }
} import java.io.*; io.* java import java.util.*; util.* java public class Main{
    
    public static void main(String[] args) throws IOException {
        Reader.init();
        int N=Reader.nextInt();
      	int V[]=new int[N];
      	read(V, N);
      	PriorityQueue<Double> PQ=new PriorityQueue();
      	for(int i:V){
        	PQ.add((double)i);
        }
      	while(PQ.size()>1){
        	double a=PQ.poll();
          	double b=PQ.poll();
          	PQ.add((a+b)/2);
        }
      	print(PQ.poll());
      
    }

    static int mod=1000000007;
    
    public static void read(int arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.nextInt(); } }
    public static void read(String arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.next(); } }
    
    public static void print(Object O){ System.out.println(O); }
    
    public static void display(int arr[]){ System.out.println(Arrays.toString(arr)); }
    public static void display(int arr[][], int N){ for(int i=0;i<N;i++){ System.out.println(Arrays.toString(arr[i])); } }
  
} Main static int mod=1000000007; mod 1000000007 public static void main(String[] args) throws IOException {
        Reader.init();
        int N=Reader.nextInt();
      	int V[]=new int[N];
      	read(V, N);
      	PriorityQueue<Double> PQ=new PriorityQueue();
      	for(int i:V){
        	PQ.add((double)i);
        }
      	while(PQ.size()>1){
        	double a=PQ.poll();
          	double b=PQ.poll();
          	PQ.add((a+b)/2);
        }
      	print(PQ.poll());
      
    } main {
        Reader.init();
        int N=Reader.nextInt();
      	int V[]=new int[N];
      	read(V, N);
      	PriorityQueue<Double> PQ=new PriorityQueue();
      	for(int i:V){
        	PQ.add((double)i);
        }
      	while(PQ.size()>1){
        	double a=PQ.poll();
          	double b=PQ.poll();
          	PQ.add((a+b)/2);
        }
      	print(PQ.poll());
      
    } Reader.init() Reader.init Reader int N=Reader.nextInt(); N Reader.nextInt() Reader.nextInt Reader int V[]=new int[N]; V new int[N] N read(V, N) read V N PriorityQueue<Double> PQ=new PriorityQueue(); PQ new PriorityQueue() for(int i:V){
        	PQ.add((double)i);
        } int i V {
        	PQ.add((double)i);
        } {
        	PQ.add((double)i);
        } PQ.add((double)i) PQ.add PQ (double)i while(PQ.size()>1){
        	double a=PQ.poll();
          	double b=PQ.poll();
          	PQ.add((a+b)/2);
        } PQ.size()>1 PQ.size() PQ.size PQ 1 {
        	double a=PQ.poll();
          	double b=PQ.poll();
          	PQ.add((a+b)/2);
        } double a=PQ.poll(); a PQ.poll() PQ.poll PQ double b=PQ.poll(); b PQ.poll() PQ.poll PQ PQ.add((a+b)/2) PQ.add PQ (a+b)/2 (a+b) a b 2 print(PQ.poll()) print PQ.poll() PQ.poll PQ String[] args args public static void read(int arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.nextInt(); } } read { for(int i=0;i<N;i++){ arr[i]=Reader.nextInt(); } } for(int i=0;i<N;i++){ arr[i]=Reader.nextInt(); } int i=0; int i=0; i 0 i<N i N i++ i++ i { arr[i]=Reader.nextInt(); } { arr[i]=Reader.nextInt(); } arr[i]=Reader.nextInt() arr[i] arr i Reader.nextInt() Reader.nextInt Reader int arr[] arr int N N public static void read(String arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.next(); } } read { for(int i=0;i<N;i++){ arr[i]=Reader.next(); } } for(int i=0;i<N;i++){ arr[i]=Reader.next(); } int i=0; int i=0; i 0 i<N i N i++ i++ i { arr[i]=Reader.next(); } { arr[i]=Reader.next(); } arr[i]=Reader.next() arr[i] arr i Reader.next() Reader.next Reader String arr[] arr int N N public static void print(Object O){ System.out.println(O); } print { System.out.println(O); } System.out.println(O) System.out.println System.out System System.out O Object O O public static void display(int arr[]){ System.out.println(Arrays.toString(arr)); } display { System.out.println(Arrays.toString(arr)); } System.out.println(Arrays.toString(arr)) System.out.println System.out System System.out Arrays.toString(arr) Arrays.toString Arrays arr int arr[] arr public static void display(int arr[][], int N){ for(int i=0;i<N;i++){ System.out.println(Arrays.toString(arr[i])); } } display { for(int i=0;i<N;i++){ System.out.println(Arrays.toString(arr[i])); } } for(int i=0;i<N;i++){ System.out.println(Arrays.toString(arr[i])); } int i=0; int i=0; i 0 i<N i N i++ i++ i { System.out.println(Arrays.toString(arr[i])); } { System.out.println(Arrays.toString(arr[i])); } System.out.println(Arrays.toString(arr[i])) System.out.println System.out System System.out Arrays.toString(arr[i]) Arrays.toString Arrays arr[i] arr i int arr[][] arr int N N class Reader {
    static BufferedReader reader;
    static StringTokenizer tokenizer;

    static void init() {
        reader=new BufferedReader(new InputStreamReader(System.in));
        tokenizer=new StringTokenizer("");
    }

    static String next() throws IOException {
        while (!tokenizer.hasMoreTokens() ) {
            tokenizer=new StringTokenizer(reader.readLine());
        }
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException { return Integer.parseInt(next()); }
    static double nextDouble() throws IOException { return Double.parseDouble(next()); }
    static long nextLong() throws IOException { return Long.parseLong(next()); }
    static String nextLine() throws IOException { return reader.readLine(); }
} Reader static BufferedReader reader; reader static StringTokenizer tokenizer; tokenizer static void init() {
        reader=new BufferedReader(new InputStreamReader(System.in));
        tokenizer=new StringTokenizer("");
    } init {
        reader=new BufferedReader(new InputStreamReader(System.in));
        tokenizer=new StringTokenizer("");
    } reader=new BufferedReader(new InputStreamReader(System.in)) reader new BufferedReader(new InputStreamReader(System.in)) tokenizer=new StringTokenizer("") tokenizer new StringTokenizer("") static String next() throws IOException {
        while (!tokenizer.hasMoreTokens() ) {
            tokenizer=new StringTokenizer(reader.readLine());
        }
        return tokenizer.nextToken();
    } next {
        while (!tokenizer.hasMoreTokens() ) {
            tokenizer=new StringTokenizer(reader.readLine());
        }
        return tokenizer.nextToken();
    } while (!tokenizer.hasMoreTokens() ) {
            tokenizer=new StringTokenizer(reader.readLine());
        } !tokenizer.hasMoreTokens() tokenizer.hasMoreTokens() tokenizer.hasMoreTokens tokenizer {
            tokenizer=new StringTokenizer(reader.readLine());
        } tokenizer=new StringTokenizer(reader.readLine()) tokenizer new StringTokenizer(reader.readLine()) return tokenizer.nextToken(); tokenizer.nextToken() tokenizer.nextToken tokenizer static int nextInt() throws IOException { return Integer.parseInt(next()); } nextInt { return Integer.parseInt(next()); } return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next static double nextDouble() throws IOException { return Double.parseDouble(next()); } nextDouble { return Double.parseDouble(next()); } return Double.parseDouble(next()); Double.parseDouble(next()) Double.parseDouble Double next() next static long nextLong() throws IOException { return Long.parseLong(next()); } nextLong { return Long.parseLong(next()); } return Long.parseLong(next()); Long.parseLong(next()) Long.parseLong Long next() next static String nextLine() throws IOException { return reader.readLine(); } nextLine { return reader.readLine(); } return reader.readLine(); reader.readLine() reader.readLine reader public class Main{
    
    public static void main(String[] args) throws IOException {
        Reader.init();
        int N=Reader.nextInt();
      	int V[]=new int[N];
      	read(V, N);
      	PriorityQueue<Double> PQ=new PriorityQueue();
      	for(int i:V){
        	PQ.add((double)i);
        }
      	while(PQ.size()>1){
        	double a=PQ.poll();
          	double b=PQ.poll();
          	PQ.add((a+b)/2);
        }
      	print(PQ.poll());
      
    }

    static int mod=1000000007;
    
    public static void read(int arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.nextInt(); } }
    public static void read(String arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.next(); } }
    
    public static void print(Object O){ System.out.println(O); }
    
    public static void display(int arr[]){ System.out.println(Arrays.toString(arr)); }
    public static void display(int arr[][], int N){ for(int i=0;i<N;i++){ System.out.println(Arrays.toString(arr[i])); } }
  
} public class Main{
    
    public static void main(String[] args) throws IOException {
        Reader.init();
        int N=Reader.nextInt();
      	int V[]=new int[N];
      	read(V, N);
      	PriorityQueue<Double> PQ=new PriorityQueue();
      	for(int i:V){
        	PQ.add((double)i);
        }
      	while(PQ.size()>1){
        	double a=PQ.poll();
          	double b=PQ.poll();
          	PQ.add((a+b)/2);
        }
      	print(PQ.poll());
      
    }

    static int mod=1000000007;
    
    public static void read(int arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.nextInt(); } }
    public static void read(String arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.next(); } }
    
    public static void print(Object O){ System.out.println(O); }
    
    public static void display(int arr[]){ System.out.println(Arrays.toString(arr)); }
    public static void display(int arr[][], int N){ for(int i=0;i<N;i++){ System.out.println(Arrays.toString(arr[i])); } }
  
} Main
import java.io.*;
import java.util.*;

public class Main{
    
    public static void main(String[] args) throws IOException {
        Reader.init();
        int N=Reader.nextInt();
      	int V[]=new int[N];
      	read(V, N);
      	PriorityQueue<Double> PQ=new PriorityQueue();
      	for(int i:V){
        	PQ.add((double)i);
        }
      	while(PQ.size()>1){
        	double a=PQ.poll();
          	double b=PQ.poll();
          	PQ.add((a+b)/2);
        }
      	print(PQ.poll());
      
    }

    static int mod=1000000007;
    
    public static void read(int arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.nextInt(); } }
    public static void read(String arr[], int N) throws IOException{ for(int i=0;i<N;i++){ arr[i]=Reader.next(); } }
    
    public static void print(Object O){ System.out.println(O); }
    
    public static void display(int arr[]){ System.out.println(Arrays.toString(arr)); }
    public static void display(int arr[][], int N){ for(int i=0;i<N;i++){ System.out.println(Arrays.toString(arr[i])); } }
  
}

class Reader {
    static BufferedReader reader;
    static StringTokenizer tokenizer;

    static void init() {
        reader=new BufferedReader(new InputStreamReader(System.in));
        tokenizer=new StringTokenizer("");
    }

    static String next() throws IOException {
        while (!tokenizer.hasMoreTokens() ) {
            tokenizer=new StringTokenizer(reader.readLine());
        }
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException { return Integer.parseInt(next()); }
    static double nextDouble() throws IOException { return Double.parseDouble(next()); }
    static long nextLong() throws IOException { return Long.parseLong(next()); }
    static String nextLine() throws IOException { return reader.readLine(); }
}