import java.util.*;

class Main {
    public static void main(String[] args) {
        new Solver().run();
    }
}

class Solver {

    public void run() {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        PriorityQueue<Double> pq = new PriorityQueue<>();

        for (int i = 0; i < N; i++) {
            pq.offer(sc.nextDouble());
        }

        while (pq.size() > 2) {
            double v1 = pq.poll();
            double v2 = pq.poll();

            pq.offer((v1 + v2)/2);
        }

        double v1 = pq.poll();
        double v2 = pq.poll();
        double value = (v1 + v2) / 2.0;
        System.out.println(value);

        return;
    }

} import java.util.*; util.* java class Main {
    public static void main(String[] args) {
        new Solver().run();
    }
} Main public static void main(String[] args) {
        new Solver().run();
    } main {
        new Solver().run();
    } new Solver().run() new Solver().run new Solver() String[] args args class Solver {

    public void run() {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        PriorityQueue<Double> pq = new PriorityQueue<>();

        for (int i = 0; i < N; i++) {
            pq.offer(sc.nextDouble());
        }

        while (pq.size() > 2) {
            double v1 = pq.poll();
            double v2 = pq.poll();

            pq.offer((v1 + v2)/2);
        }

        double v1 = pq.poll();
        double v2 = pq.poll();
        double value = (v1 + v2) / 2.0;
        System.out.println(value);

        return;
    }

} Solver public void run() {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        PriorityQueue<Double> pq = new PriorityQueue<>();

        for (int i = 0; i < N; i++) {
            pq.offer(sc.nextDouble());
        }

        while (pq.size() > 2) {
            double v1 = pq.poll();
            double v2 = pq.poll();

            pq.offer((v1 + v2)/2);
        }

        double v1 = pq.poll();
        double v2 = pq.poll();
        double value = (v1 + v2) / 2.0;
        System.out.println(value);

        return;
    } run {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        PriorityQueue<Double> pq = new PriorityQueue<>();

        for (int i = 0; i < N; i++) {
            pq.offer(sc.nextDouble());
        }

        while (pq.size() > 2) {
            double v1 = pq.poll();
            double v2 = pq.poll();

            pq.offer((v1 + v2)/2);
        }

        double v1 = pq.poll();
        double v2 = pq.poll();
        double value = (v1 + v2) / 2.0;
        System.out.println(value);

        return;
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc PriorityQueue<Double> pq = new PriorityQueue<>(); pq new PriorityQueue<>() for (int i = 0; i < N; i++) {
            pq.offer(sc.nextDouble());
        } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
            pq.offer(sc.nextDouble());
        } {
            pq.offer(sc.nextDouble());
        } pq.offer(sc.nextDouble()) pq.offer pq sc.nextDouble() sc.nextDouble sc while (pq.size() > 2) {
            double v1 = pq.poll();
            double v2 = pq.poll();

            pq.offer((v1 + v2)/2);
        } pq.size() > 2 pq.size() pq.size pq 2 {
            double v1 = pq.poll();
            double v2 = pq.poll();

            pq.offer((v1 + v2)/2);
        } double v1 = pq.poll(); v1 pq.poll() pq.poll pq double v2 = pq.poll(); v2 pq.poll() pq.poll pq pq.offer((v1 + v2)/2) pq.offer pq (v1 + v2)/2 (v1 + v2) v1 v2 2 double v1 = pq.poll(); v1 pq.poll() pq.poll pq double v2 = pq.poll(); v2 pq.poll() pq.poll pq double value = (v1 + v2) / 2.0; value (v1 + v2) / 2.0 (v1 + v2) v1 v2 2.0 System.out.println(value) System.out.println System.out System System.out value return;
import java.util.*;

class Main {
    public static void main(String[] args) {
        new Solver().run();
    }
}

class Solver {

    public void run() {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        PriorityQueue<Double> pq = new PriorityQueue<>();

        for (int i = 0; i < N; i++) {
            pq.offer(sc.nextDouble());
        }

        while (pq.size() > 2) {
            double v1 = pq.poll();
            double v2 = pq.poll();

            pq.offer((v1 + v2)/2);
        }

        double v1 = pq.poll();
        double v2 = pq.poll();
        double value = (v1 + v2) / 2.0;
        System.out.println(value);

        return;
    }

}