import java.util.PriorityQueue;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner std = new Scanner(System.in);
        int n = std.nextInt();
        int[] vs = new int[n];
        for (int i = 0; i < n; i++) {
            vs[i] = std.nextInt();
        }

        double ans = 0;

        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++) {
            pq.add((double) vs[i]);
        }

        while (!pq.isEmpty()) {
            double first = pq.poll();
            if (pq.isEmpty()) {
                ans = first;
                break;
            }
            double second = pq.poll();

            ans = (first + second) / 2.0;
            pq.add(ans);
        }

        System.out.println(ans);
    }
} import java.util.PriorityQueue; PriorityQueue java.util import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner std = new Scanner(System.in);
        int n = std.nextInt();
        int[] vs = new int[n];
        for (int i = 0; i < n; i++) {
            vs[i] = std.nextInt();
        }

        double ans = 0;

        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++) {
            pq.add((double) vs[i]);
        }

        while (!pq.isEmpty()) {
            double first = pq.poll();
            if (pq.isEmpty()) {
                ans = first;
                break;
            }
            double second = pq.poll();

            ans = (first + second) / 2.0;
            pq.add(ans);
        }

        System.out.println(ans);
    }
} Main public static void main(String[] args) {
        Scanner std = new Scanner(System.in);
        int n = std.nextInt();
        int[] vs = new int[n];
        for (int i = 0; i < n; i++) {
            vs[i] = std.nextInt();
        }

        double ans = 0;

        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++) {
            pq.add((double) vs[i]);
        }

        while (!pq.isEmpty()) {
            double first = pq.poll();
            if (pq.isEmpty()) {
                ans = first;
                break;
            }
            double second = pq.poll();

            ans = (first + second) / 2.0;
            pq.add(ans);
        }

        System.out.println(ans);
    } main {
        Scanner std = new Scanner(System.in);
        int n = std.nextInt();
        int[] vs = new int[n];
        for (int i = 0; i < n; i++) {
            vs[i] = std.nextInt();
        }

        double ans = 0;

        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++) {
            pq.add((double) vs[i]);
        }

        while (!pq.isEmpty()) {
            double first = pq.poll();
            if (pq.isEmpty()) {
                ans = first;
                break;
            }
            double second = pq.poll();

            ans = (first + second) / 2.0;
            pq.add(ans);
        }

        System.out.println(ans);
    } Scanner std = new Scanner(System.in); std new Scanner(System.in) int n = std.nextInt(); n std.nextInt() std.nextInt std int[] vs = new int[n]; vs new int[n] n for (int i = 0; i < n; i++) {
            vs[i] = std.nextInt();
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            vs[i] = std.nextInt();
        } {
            vs[i] = std.nextInt();
        } vs[i] = std.nextInt() vs[i] vs i std.nextInt() std.nextInt std double ans = 0; ans 0 PriorityQueue<Double> pq = new PriorityQueue<>(); pq new PriorityQueue<>() for (int i = 0; i < n; i++) {
            pq.add((double) vs[i]);
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            pq.add((double) vs[i]);
        } {
            pq.add((double) vs[i]);
        } pq.add((double) vs[i]) pq.add pq (double) vs[i] vs i while (!pq.isEmpty()) {
            double first = pq.poll();
            if (pq.isEmpty()) {
                ans = first;
                break;
            }
            double second = pq.poll();

            ans = (first + second) / 2.0;
            pq.add(ans);
        } !pq.isEmpty() pq.isEmpty() pq.isEmpty pq {
            double first = pq.poll();
            if (pq.isEmpty()) {
                ans = first;
                break;
            }
            double second = pq.poll();

            ans = (first + second) / 2.0;
            pq.add(ans);
        } double first = pq.poll(); first pq.poll() pq.poll pq if (pq.isEmpty()) {
                ans = first;
                break;
            } pq.isEmpty() pq.isEmpty pq {
                ans = first;
                break;
            } ans = first ans first break; double second = pq.poll(); second pq.poll() pq.poll pq ans = (first + second) / 2.0 ans (first + second) / 2.0 (first + second) first second 2.0 pq.add(ans) pq.add pq ans System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main {
    public static void main(String[] args) {
        Scanner std = new Scanner(System.in);
        int n = std.nextInt();
        int[] vs = new int[n];
        for (int i = 0; i < n; i++) {
            vs[i] = std.nextInt();
        }

        double ans = 0;

        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++) {
            pq.add((double) vs[i]);
        }

        while (!pq.isEmpty()) {
            double first = pq.poll();
            if (pq.isEmpty()) {
                ans = first;
                break;
            }
            double second = pq.poll();

            ans = (first + second) / 2.0;
            pq.add(ans);
        }

        System.out.println(ans);
    }
} public class Main {
    public static void main(String[] args) {
        Scanner std = new Scanner(System.in);
        int n = std.nextInt();
        int[] vs = new int[n];
        for (int i = 0; i < n; i++) {
            vs[i] = std.nextInt();
        }

        double ans = 0;

        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++) {
            pq.add((double) vs[i]);
        }

        while (!pq.isEmpty()) {
            double first = pq.poll();
            if (pq.isEmpty()) {
                ans = first;
                break;
            }
            double second = pq.poll();

            ans = (first + second) / 2.0;
            pq.add(ans);
        }

        System.out.println(ans);
    }
} Main
import java.util.PriorityQueue;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner std = new Scanner(System.in);
        int n = std.nextInt();
        int[] vs = new int[n];
        for (int i = 0; i < n; i++) {
            vs[i] = std.nextInt();
        }

        double ans = 0;

        PriorityQueue<Double> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++) {
            pq.add((double) vs[i]);
        }

        while (!pq.isEmpty()) {
            double first = pq.poll();
            if (pq.isEmpty()) {
                ans = first;
                break;
            }
            double second = pq.poll();

            ans = (first + second) / 2.0;
            pq.add(ans);
        }

        System.out.println(ans);
    }
}
