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

public class Main
{
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

    public void go() throws IOException
    {
        StringTokenizer tok = new StringTokenizer(in.readLine());
        int n = Integer.parseInt(tok.nextToken());
        tok = new StringTokenizer(in.readLine());
        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++)
        {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        }
        while (pq.size() > 1)
        {
            double a = pq.remove();
            double b = pq.remove();
            pq.add((a+b) / 2);
        }
        out.println(pq.remove());

        out.flush();
        in.close();
    }

    public static void main(String[] args) throws IOException
    {
        new Main().go();
    }
} import java.io.*; io.* java import java.util.*; util.* java public class Main
{
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

    public void go() throws IOException
    {
        StringTokenizer tok = new StringTokenizer(in.readLine());
        int n = Integer.parseInt(tok.nextToken());
        tok = new StringTokenizer(in.readLine());
        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++)
        {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        }
        while (pq.size() > 1)
        {
            double a = pq.remove();
            double b = pq.remove();
            pq.add((a+b) / 2);
        }
        out.println(pq.remove());

        out.flush();
        in.close();
    }

    public static void main(String[] args) throws IOException
    {
        new Main().go();
    }
} Main PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))); out new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))) BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); in new BufferedReader(new InputStreamReader(System.in)) public void go() throws IOException
    {
        StringTokenizer tok = new StringTokenizer(in.readLine());
        int n = Integer.parseInt(tok.nextToken());
        tok = new StringTokenizer(in.readLine());
        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++)
        {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        }
        while (pq.size() > 1)
        {
            double a = pq.remove();
            double b = pq.remove();
            pq.add((a+b) / 2);
        }
        out.println(pq.remove());

        out.flush();
        in.close();
    } go {
        StringTokenizer tok = new StringTokenizer(in.readLine());
        int n = Integer.parseInt(tok.nextToken());
        tok = new StringTokenizer(in.readLine());
        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++)
        {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        }
        while (pq.size() > 1)
        {
            double a = pq.remove();
            double b = pq.remove();
            pq.add((a+b) / 2);
        }
        out.println(pq.remove());

        out.flush();
        in.close();
    } StringTokenizer tok = new StringTokenizer(in.readLine()); tok new StringTokenizer(in.readLine()) int n = Integer.parseInt(tok.nextToken()); n Integer.parseInt(tok.nextToken()) Integer.parseInt Integer tok.nextToken() tok.nextToken tok tok = new StringTokenizer(in.readLine()) tok new StringTokenizer(in.readLine()) PriorityQueue<Double> pq = new PriorityQueue<>(); pq new PriorityQueue<>() for (int i = 0; i < n; i++)
        {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        } {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        } pq.add((double)Integer.parseInt(tok.nextToken())) pq.add pq (double)Integer.parseInt(tok.nextToken()) Integer.parseInt Integer tok.nextToken() tok.nextToken tok while (pq.size() > 1)
        {
            double a = pq.remove();
            double b = pq.remove();
            pq.add((a+b) / 2);
        } pq.size() > 1 pq.size() pq.size pq 1 {
            double a = pq.remove();
            double b = pq.remove();
            pq.add((a+b) / 2);
        } double a = pq.remove(); a pq.remove() pq.remove pq double b = pq.remove(); b pq.remove() pq.remove pq pq.add((a+b) / 2) pq.add pq (a+b) / 2 (a+b) a b 2 out.println(pq.remove()) out.println out pq.remove() pq.remove pq out.flush() out.flush out in.close() in.close in public static void main(String[] args) throws IOException
    {
        new Main().go();
    } main {
        new Main().go();
    } new Main().go() new Main().go new Main() String[] args args public class Main
{
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

    public void go() throws IOException
    {
        StringTokenizer tok = new StringTokenizer(in.readLine());
        int n = Integer.parseInt(tok.nextToken());
        tok = new StringTokenizer(in.readLine());
        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++)
        {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        }
        while (pq.size() > 1)
        {
            double a = pq.remove();
            double b = pq.remove();
            pq.add((a+b) / 2);
        }
        out.println(pq.remove());

        out.flush();
        in.close();
    }

    public static void main(String[] args) throws IOException
    {
        new Main().go();
    }
} public class Main
{
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

    public void go() throws IOException
    {
        StringTokenizer tok = new StringTokenizer(in.readLine());
        int n = Integer.parseInt(tok.nextToken());
        tok = new StringTokenizer(in.readLine());
        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++)
        {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        }
        while (pq.size() > 1)
        {
            double a = pq.remove();
            double b = pq.remove();
            pq.add((a+b) / 2);
        }
        out.println(pq.remove());

        out.flush();
        in.close();
    }

    public static void main(String[] args) throws IOException
    {
        new Main().go();
    }
} Main
import java.io.*;
import java.util.*;

public class Main
{
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

    public void go() throws IOException
    {
        StringTokenizer tok = new StringTokenizer(in.readLine());
        int n = Integer.parseInt(tok.nextToken());
        tok = new StringTokenizer(in.readLine());
        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++)
        {
            pq.add((double)Integer.parseInt(tok.nextToken()));
        }
        while (pq.size() > 1)
        {
            double a = pq.remove();
            double b = pq.remove();
            pq.add((a+b) / 2);
        }
        out.println(pq.remove());

        out.flush();
        in.close();
    }

    public static void main(String[] args) throws IOException
    {
        new Main().go();
    }
}
