import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		PriorityQueue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add((double) sc.nextInt());
		}
		while (q.size() > 1) {
			double x = q.poll();
			double y = q.poll();
			q.add((x + y) / 2);
		}
		System.out.println(q.poll());
	}
} import java.util.*; util.* java public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		PriorityQueue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add((double) sc.nextInt());
		}
		while (q.size() > 1) {
			double x = q.poll();
			double y = q.poll();
			q.add((x + y) / 2);
		}
		System.out.println(q.poll());
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		PriorityQueue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add((double) sc.nextInt());
		}
		while (q.size() > 1) {
			double x = q.poll();
			double y = q.poll();
			q.add((x + y) / 2);
		}
		System.out.println(q.poll());
	} main {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		PriorityQueue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add((double) sc.nextInt());
		}
		while (q.size() > 1) {
			double x = q.poll();
			double y = q.poll();
			q.add((x + y) / 2);
		}
		System.out.println(q.poll());
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc PriorityQueue<Double> q = new PriorityQueue<>(); q new PriorityQueue<>() for (int i = 0; i < N; i++) {
			q.add((double) sc.nextInt());
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			q.add((double) sc.nextInt());
		} {
			q.add((double) sc.nextInt());
		} q.add((double) sc.nextInt()) q.add q (double) sc.nextInt() sc.nextInt sc while (q.size() > 1) {
			double x = q.poll();
			double y = q.poll();
			q.add((x + y) / 2);
		} q.size() > 1 q.size() q.size q 1 {
			double x = q.poll();
			double y = q.poll();
			q.add((x + y) / 2);
		} double x = q.poll(); x q.poll() q.poll q double y = q.poll(); y q.poll() q.poll q q.add((x + y) / 2) q.add q (x + y) / 2 (x + y) x y 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 = sc.nextInt();
		PriorityQueue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add((double) sc.nextInt());
		}
		while (q.size() > 1) {
			double x = q.poll();
			double y = q.poll();
			q.add((x + y) / 2);
		}
		System.out.println(q.poll());
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		PriorityQueue<Double> q = new PriorityQueue<>();
		for (int i = 0; i < N; i++) {
			q.add((double) sc.nextInt());
		}
		while (q.size() > 1) {
			double x = q.poll();
			double y = q.poll();
			q.add((x + y) / 2);
		}
		System.out.println(q.poll());
	}
} Main
import java.util.*;

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