import java.util.*;
import java.math.BigDecimal;

public class Main {
  public static void main(String[] args) {
    int N;
    List<Integer> vList = new ArrayList<>();
    try(Scanner sc = new Scanner(System.in)) {
      N = sc.nextInt();
      for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      }
    }
    Collections.sort(vList);
    int[] v = new int[N];
    for(int i = 0; i < N; i++) {
      v[i] = vList.get(i);
    }
    double answer = solve(v);
    System.out.println(answer);
  }
  
  private static double solve(int[] v) {
    int n = v.length;
    if ( n == 2 ) {
      return ((double)v[0]+(double)v[1])/2;
    }
    int[] v0 = new int[n-1];
    System.arraycopy(v, 0, v0, 0, n-1);
    return (solve(v0)+(double)v[n-1])/2;
  }

} import java.util.*; util.* java import java.math.BigDecimal; BigDecimal java.math public class Main {
  public static void main(String[] args) {
    int N;
    List<Integer> vList = new ArrayList<>();
    try(Scanner sc = new Scanner(System.in)) {
      N = sc.nextInt();
      for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      }
    }
    Collections.sort(vList);
    int[] v = new int[N];
    for(int i = 0; i < N; i++) {
      v[i] = vList.get(i);
    }
    double answer = solve(v);
    System.out.println(answer);
  }
  
  private static double solve(int[] v) {
    int n = v.length;
    if ( n == 2 ) {
      return ((double)v[0]+(double)v[1])/2;
    }
    int[] v0 = new int[n-1];
    System.arraycopy(v, 0, v0, 0, n-1);
    return (solve(v0)+(double)v[n-1])/2;
  }

} Main public static void main(String[] args) {
    int N;
    List<Integer> vList = new ArrayList<>();
    try(Scanner sc = new Scanner(System.in)) {
      N = sc.nextInt();
      for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      }
    }
    Collections.sort(vList);
    int[] v = new int[N];
    for(int i = 0; i < N; i++) {
      v[i] = vList.get(i);
    }
    double answer = solve(v);
    System.out.println(answer);
  } main {
    int N;
    List<Integer> vList = new ArrayList<>();
    try(Scanner sc = new Scanner(System.in)) {
      N = sc.nextInt();
      for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      }
    }
    Collections.sort(vList);
    int[] v = new int[N];
    for(int i = 0; i < N; i++) {
      v[i] = vList.get(i);
    }
    double answer = solve(v);
    System.out.println(answer);
  } int N; N List<Integer> vList = new ArrayList<>(); vList new ArrayList<>() try(Scanner sc = new Scanner(System.in)) {
      N = sc.nextInt();
      for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      }
    } {
      N = sc.nextInt();
      for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      }
    } Scanner sc = new Scanner(System.in) Scanner sc = new Scanner(System.in) new Scanner(System.in) N = sc.nextInt() N sc.nextInt() sc.nextInt sc for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
        vList.add(sc.nextInt());
      } {
        vList.add(sc.nextInt());
      } vList.add(sc.nextInt()) vList.add vList sc.nextInt() sc.nextInt sc Collections.sort(vList) Collections.sort Collections vList int[] v = new int[N]; v new int[N] N for(int i = 0; i < N; i++) {
      v[i] = vList.get(i);
    } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
      v[i] = vList.get(i);
    } {
      v[i] = vList.get(i);
    } v[i] = vList.get(i) v[i] v i vList.get(i) vList.get vList i double answer = solve(v); answer solve(v) solve v System.out.println(answer) System.out.println System.out System System.out answer String[] args args private static double solve(int[] v) {
    int n = v.length;
    if ( n == 2 ) {
      return ((double)v[0]+(double)v[1])/2;
    }
    int[] v0 = new int[n-1];
    System.arraycopy(v, 0, v0, 0, n-1);
    return (solve(v0)+(double)v[n-1])/2;
  } solve {
    int n = v.length;
    if ( n == 2 ) {
      return ((double)v[0]+(double)v[1])/2;
    }
    int[] v0 = new int[n-1];
    System.arraycopy(v, 0, v0, 0, n-1);
    return (solve(v0)+(double)v[n-1])/2;
  } int n = v.length; n v.length v v.length if ( n == 2 ) {
      return ((double)v[0]+(double)v[1])/2;
    } n == 2 n 2 {
      return ((double)v[0]+(double)v[1])/2;
    } return ((double)v[0]+(double)v[1])/2; ((double)v[0]+(double)v[1])/2 ((double)v[0]+(double)v[1]) (double)v[0] v 0 (double)v[1] v 1 2 int[] v0 = new int[n-1]; v0 new int[n-1] n-1 n 1 System.arraycopy(v, 0, v0, 0, n-1) System.arraycopy System v 0 v0 0 n-1 n 1 return (solve(v0)+(double)v[n-1])/2; (solve(v0)+(double)v[n-1])/2 (solve(v0)+(double)v[n-1]) solve(v0) solve v0 (double)v[n-1] v n-1 n 1 2 int[] v v public class Main {
  public static void main(String[] args) {
    int N;
    List<Integer> vList = new ArrayList<>();
    try(Scanner sc = new Scanner(System.in)) {
      N = sc.nextInt();
      for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      }
    }
    Collections.sort(vList);
    int[] v = new int[N];
    for(int i = 0; i < N; i++) {
      v[i] = vList.get(i);
    }
    double answer = solve(v);
    System.out.println(answer);
  }
  
  private static double solve(int[] v) {
    int n = v.length;
    if ( n == 2 ) {
      return ((double)v[0]+(double)v[1])/2;
    }
    int[] v0 = new int[n-1];
    System.arraycopy(v, 0, v0, 0, n-1);
    return (solve(v0)+(double)v[n-1])/2;
  }

} public class Main {
  public static void main(String[] args) {
    int N;
    List<Integer> vList = new ArrayList<>();
    try(Scanner sc = new Scanner(System.in)) {
      N = sc.nextInt();
      for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      }
    }
    Collections.sort(vList);
    int[] v = new int[N];
    for(int i = 0; i < N; i++) {
      v[i] = vList.get(i);
    }
    double answer = solve(v);
    System.out.println(answer);
  }
  
  private static double solve(int[] v) {
    int n = v.length;
    if ( n == 2 ) {
      return ((double)v[0]+(double)v[1])/2;
    }
    int[] v0 = new int[n-1];
    System.arraycopy(v, 0, v0, 0, n-1);
    return (solve(v0)+(double)v[n-1])/2;
  }

} Main
import java.util.*;
import java.math.BigDecimal;

public class Main {
  public static void main(String[] args) {
    int N;
    List<Integer> vList = new ArrayList<>();
    try(Scanner sc = new Scanner(System.in)) {
      N = sc.nextInt();
      for(int i = 0; i < N; i++) {
        vList.add(sc.nextInt());
      }
    }
    Collections.sort(vList);
    int[] v = new int[N];
    for(int i = 0; i < N; i++) {
      v[i] = vList.get(i);
    }
    double answer = solve(v);
    System.out.println(answer);
  }
  
  private static double solve(int[] v) {
    int n = v.length;
    if ( n == 2 ) {
      return ((double)v[0]+(double)v[1])/2;
    }
    int[] v0 = new int[n-1];
    System.arraycopy(v, 0, v0, 0, n-1);
    return (solve(v0)+(double)v[n-1])/2;
  }

}