import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int v_i=0;
		double gousei=0;
		
		List<Double> v = new ArrayList<Double>();
		List<Double> v_g = new ArrayList<Double>();
		
		//要素の追加
		for(int i=0;i<n;i++) {
			v_i = sc.nextInt();
			v.add((double)v_i);
		}
		//要素の並び替え
		Collections.sort(v);
		//n-1回の合成作業
		for(int i=0;i<n-1;i++) {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		}
		
		
		System.out.println(gousei);
		
		
		
		
		
	}
} import java.util.ArrayList; ArrayList java.util import java.util.Collections; Collections java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int v_i=0;
		double gousei=0;
		
		List<Double> v = new ArrayList<Double>();
		List<Double> v_g = new ArrayList<Double>();
		
		//要素の追加
		for(int i=0;i<n;i++) {
			v_i = sc.nextInt();
			v.add((double)v_i);
		}
		//要素の並び替え
		Collections.sort(v);
		//n-1回の合成作業
		for(int i=0;i<n-1;i++) {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		}
		
		
		System.out.println(gousei);
		
		
		
		
		
	}
} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int v_i=0;
		double gousei=0;
		
		List<Double> v = new ArrayList<Double>();
		List<Double> v_g = new ArrayList<Double>();
		
		//要素の追加
		for(int i=0;i<n;i++) {
			v_i = sc.nextInt();
			v.add((double)v_i);
		}
		//要素の並び替え
		Collections.sort(v);
		//n-1回の合成作業
		for(int i=0;i<n-1;i++) {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		}
		
		
		System.out.println(gousei);
		
		
		
		
		
	} main {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int v_i=0;
		double gousei=0;
		
		List<Double> v = new ArrayList<Double>();
		List<Double> v_g = new ArrayList<Double>();
		
		//要素の追加
		for(int i=0;i<n;i++) {
			v_i = sc.nextInt();
			v.add((double)v_i);
		}
		//要素の並び替え
		Collections.sort(v);
		//n-1回の合成作業
		for(int i=0;i<n-1;i++) {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		}
		
		
		System.out.println(gousei);
		
		
		
		
		
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int v_i=0; v_i 0 double gousei=0; gousei 0 List<Double> v = new ArrayList<Double>(); v new ArrayList<Double>() List<Double> v_g = new ArrayList<Double>(); v_g new ArrayList<Double>() for(int i=0;i<n;i++) {
			v_i = sc.nextInt();
			v.add((double)v_i);
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			v_i = sc.nextInt();
			v.add((double)v_i);
		} {
			v_i = sc.nextInt();
			v.add((double)v_i);
		} v_i = sc.nextInt() v_i sc.nextInt() sc.nextInt sc v.add((double)v_i) v.add v (double)v_i Collections.sort(v) Collections.sort Collections v for(int i=0;i<n-1;i++) {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		} int i=0; int i=0; i 0 i<n-1 i n-1 n 1 i++ i++ i {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		} {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		} if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			} v_g == null || v_g.size()==0 v_g == null v_g null v_g.size()==0 v_g.size() v_g.size v_g 0 {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			} gousei = v.get(0)+v.get(1) gousei v.get(0)+v.get(1) v.get(0) v.get v 0 v.get(1) v.get v 1 gousei = gousei/2 gousei gousei/2 gousei 2 v.remove(0) v.remove v 0 v.remove(0) v.remove v 0 v_g.add(gousei) v_g.add v_g gousei if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			} v.size()==1 v.size() v.size v 1 {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			} gousei = v.get(0)+v_g.get(0) gousei v.get(0)+v_g.get(0) v.get(0) v.get v 0 v_g.get(0) v_g.get v_g 0 gousei = gousei/2 gousei gousei/2 gousei 2 if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			} v_g.size()==1 v_g.size() v_g.size v_g 1 {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			} if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				} v.get(1) < v_g.get(0) v.get(1) v.get v 1 v_g.get(0) v_g.get v_g 0 {
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				} gousei = v.get(0)+v.get(1) gousei v.get(0)+v.get(1) v.get(0) v.get v 0 v.get(1) v.get v 1 gousei = gousei/2 gousei gousei/2 gousei 2 v.remove(0) v.remove v 0 v.remove(0) v.remove v 0 v_g.add(gousei) v_g.add v_g gousei {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				} gousei = v.get(0)+v_g.get(0) gousei v.get(0)+v_g.get(0) v.get(0) v.get v 0 v_g.get(0) v_g.get v_g 0 gousei = gousei/2 gousei gousei/2 gousei 2 v.remove(0) v.remove v 0 v_g.remove(0) v_g.remove v_g 0 v_g.add(gousei) v_g.add v_g gousei {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			} if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				} v.get(1) < v_g.get(0) v.get(1) v.get v 1 v_g.get(0) v_g.get v_g 0 {
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				} gousei = v.get(0)+v.get(1) gousei v.get(0)+v.get(1) v.get(0) v.get v 0 v.get(1) v.get v 1 gousei = gousei/2 gousei gousei/2 gousei 2 v.remove(0) v.remove v 0 v.remove(0) v.remove v 0 v_g.add(gousei) v_g.add v_g gousei if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				} v.get(0) < v_g.get(1) v.get(0) v.get v 0 v_g.get(1) v_g.get v_g 1 {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				} gousei = v.get(0)+v_g.get(0) gousei v.get(0)+v_g.get(0) v.get(0) v.get v 0 v_g.get(0) v_g.get v_g 0 gousei = gousei/2 gousei gousei/2 gousei 2 v.remove(0) v.remove v 0 v_g.remove(0) v_g.remove v_g 0 v_g.add(gousei) v_g.add v_g gousei {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				} gousei = v_g.get(0)+v_g.get(1) gousei v_g.get(0)+v_g.get(1) v_g.get(0) v_g.get v_g 0 v_g.get(1) v_g.get v_g 1 gousei = gousei/2 gousei gousei/2 gousei 2 v_g.remove(0) v_g.remove v_g 0 v_g.remove(0) v_g.remove v_g 0 v_g.add(gousei) v_g.add v_g gousei Collections.sort(v_g) Collections.sort Collections v_g System.out.println(gousei) System.out.println System.out System System.out gousei String[] args args public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int v_i=0;
		double gousei=0;
		
		List<Double> v = new ArrayList<Double>();
		List<Double> v_g = new ArrayList<Double>();
		
		//要素の追加
		for(int i=0;i<n;i++) {
			v_i = sc.nextInt();
			v.add((double)v_i);
		}
		//要素の並び替え
		Collections.sort(v);
		//n-1回の合成作業
		for(int i=0;i<n-1;i++) {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		}
		
		
		System.out.println(gousei);
		
		
		
		
		
	}
} public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int v_i=0;
		double gousei=0;
		
		List<Double> v = new ArrayList<Double>();
		List<Double> v_g = new ArrayList<Double>();
		
		//要素の追加
		for(int i=0;i<n;i++) {
			v_i = sc.nextInt();
			v.add((double)v_i);
		}
		//要素の並び替え
		Collections.sort(v);
		//n-1回の合成作業
		for(int i=0;i<n-1;i++) {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		}
		
		
		System.out.println(gousei);
		
		
		
		
		
	}
} Main
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int v_i=0;
		double gousei=0;
		
		List<Double> v = new ArrayList<Double>();
		List<Double> v_g = new ArrayList<Double>();
		
		//要素の追加
		for(int i=0;i<n;i++) {
			v_i = sc.nextInt();
			v.add((double)v_i);
		}
		//要素の並び替え
		Collections.sort(v);
		//n-1回の合成作業
		for(int i=0;i<n-1;i++) {
			//最小の二つを組み合わせる
			if(v_g == null || v_g.size()==0) {
				gousei = v.get(0)+v.get(1);
				gousei = gousei/2;
				//上二つを削除して，v_gに追加
				v.remove(0);
				v.remove(0);
				v_g.add(gousei);
				
			
			}else if(v.size()==1) {
				gousei = v.get(0)+v_g.get(0);
				gousei = gousei/2;
			
				
			}else if(v_g.size()==1) {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}else {
				if(v.get(1) < v_g.get(0) ){
					gousei = v.get(0)+v.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v.remove(0);
					v_g.add(gousei);
				}else if(v.get(0) < v_g.get(1) ){
					gousei = v.get(0)+v_g.get(0);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}else {
					gousei = v_g.get(0)+v_g.get(1);
					gousei = gousei/2;
					//上二つを削除して，v_gに追加
					v_g.remove(0);
					v_g.remove(0);
					v_g.add(gousei);
				}
				
			}


			//要素の並び替え
			Collections.sort(v_g);
			
			
		}
		
		
		System.out.println(gousei);
		
		
		
		
		
	}
}