
import java.util.Arrays;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		PriorityQueue<Double> p = new PriorityQueue<>();
		
		for (int i = 0; i < n; i++) {
			p.add(sc.nextDouble());
		}
		
		double tmp = 0;
		for (int i = 0; i < n - 1; i++) {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		}
		
		System.out.println(tmp);
	}
} import java.util.Arrays; Arrays java.util import java.util.Collections; Collections java.util import java.util.PriorityQueue; PriorityQueue 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 = sc.nextInt();
		PriorityQueue<Double> p = new PriorityQueue<>();
		
		for (int i = 0; i < n; i++) {
			p.add(sc.nextDouble());
		}
		
		double tmp = 0;
		for (int i = 0; i < n - 1; i++) {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		}
		
		System.out.println(tmp);
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		PriorityQueue<Double> p = new PriorityQueue<>();
		
		for (int i = 0; i < n; i++) {
			p.add(sc.nextDouble());
		}
		
		double tmp = 0;
		for (int i = 0; i < n - 1; i++) {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		}
		
		System.out.println(tmp);
	} main {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		PriorityQueue<Double> p = new PriorityQueue<>();
		
		for (int i = 0; i < n; i++) {
			p.add(sc.nextDouble());
		}
		
		double tmp = 0;
		for (int i = 0; i < n - 1; i++) {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		}
		
		System.out.println(tmp);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc PriorityQueue<Double> p = new PriorityQueue<>(); p new PriorityQueue<>() for (int i = 0; i < n; i++) {
			p.add(sc.nextDouble());
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			p.add(sc.nextDouble());
		} {
			p.add(sc.nextDouble());
		} p.add(sc.nextDouble()) p.add p sc.nextDouble() sc.nextDouble sc double tmp = 0; tmp 0 for (int i = 0; i < n - 1; i++) {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		} int i = 0; int i = 0; i 0 i < n - 1 i n - 1 n 1 i++ i++ i {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		} {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		} if (p.size() == 1) {
				break;
			} p.size() == 1 p.size() p.size p 1 {
				break;
			} break; tmp = (p.poll() + p.poll()) / 2 tmp (p.poll() + p.poll()) / 2 (p.poll() + p.poll()) p.poll() p.poll p p.poll() p.poll p 2 p.add(tmp) p.add p tmp System.out.println(tmp) System.out.println System.out System System.out tmp String[] args args public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		PriorityQueue<Double> p = new PriorityQueue<>();
		
		for (int i = 0; i < n; i++) {
			p.add(sc.nextDouble());
		}
		
		double tmp = 0;
		for (int i = 0; i < n - 1; i++) {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		}
		
		System.out.println(tmp);
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		PriorityQueue<Double> p = new PriorityQueue<>();
		
		for (int i = 0; i < n; i++) {
			p.add(sc.nextDouble());
		}
		
		double tmp = 0;
		for (int i = 0; i < n - 1; i++) {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		}
		
		System.out.println(tmp);
	}
} Main

import java.util.Arrays;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		PriorityQueue<Double> p = new PriorityQueue<>();
		
		for (int i = 0; i < n; i++) {
			p.add(sc.nextDouble());
		}
		
		double tmp = 0;
		for (int i = 0; i < n - 1; i++) {
			if (p.size() == 1) {
				break;
			}
			tmp = (p.poll() + p.poll()) / 2;
			p.add(tmp);
		}
		
		System.out.println(tmp);
	}
}