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

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.nextLine());
		Queue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add(sc.nextDouble());
		}
		while (q.size() > 1) {
			q.add((q.poll() + q.poll()) / 2);
		}

		System.out.println(q.poll());
	}
} import java.util.PriorityQueue; PriorityQueue java.util import java.util.Queue; Queue java.util import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.nextLine());
		Queue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add(sc.nextDouble());
		}
		while (q.size() > 1) {
			q.add((q.poll() + q.poll()) / 2);
		}

		System.out.println(q.poll());
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.nextLine());
		Queue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add(sc.nextDouble());
		}
		while (q.size() > 1) {
			q.add((q.poll() + q.poll()) / 2);
		}

		System.out.println(q.poll());
	} main {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.nextLine());
		Queue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add(sc.nextDouble());
		}
		while (q.size() > 1) {
			q.add((q.poll() + q.poll()) / 2);
		}

		System.out.println(q.poll());
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = Integer.parseInt(sc.nextLine()); N Integer.parseInt(sc.nextLine()) Integer.parseInt Integer sc.nextLine() sc.nextLine sc Queue<Double> q = new PriorityQueue<>(); q new PriorityQueue<>() for (int i = 0; i < N; i++) {
			q.add(sc.nextDouble());
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			q.add(sc.nextDouble());
		} {
			q.add(sc.nextDouble());
		} q.add(sc.nextDouble()) q.add q sc.nextDouble() sc.nextDouble sc while (q.size() > 1) {
			q.add((q.poll() + q.poll()) / 2);
		} q.size() > 1 q.size() q.size q 1 {
			q.add((q.poll() + q.poll()) / 2);
		} q.add((q.poll() + q.poll()) / 2) q.add q (q.poll() + q.poll()) / 2 (q.poll() + q.poll()) q.poll() q.poll q q.poll() q.poll q 2 System.out.println(q.poll()) System.out.println System.out System System.out q.poll() q.poll q String[] args args public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.nextLine());
		Queue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add(sc.nextDouble());
		}
		while (q.size() > 1) {
			q.add((q.poll() + q.poll()) / 2);
		}

		System.out.println(q.poll());
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.nextLine());
		Queue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add(sc.nextDouble());
		}
		while (q.size() > 1) {
			q.add((q.poll() + q.poll()) / 2);
		}

		System.out.println(q.poll());
	}
} Main
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = Integer.parseInt(sc.nextLine());
		Queue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add(sc.nextDouble());
		}
		while (q.size() > 1) {
			q.add((q.poll() + q.poll()) / 2);
		}

		System.out.println(q.poll());
	}
}