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

class Main {
  private static void solve(int n, double[] v) {
    PriorityQueue<Double> pq = new PriorityQueue<>(n);
    for (double val : v) {
      pq.add(val);
    }
    while (pq.size() > 1) {
      double v1 = pq.poll();
      double v2 = pq.poll();
      pq.add((v1 + v2) / 2);
    }
    System.out.println(pq.poll());
  }
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.nextLine());
    String[] vs = sc.nextLine().split(" ");
    sc.close();
    double[] v = new double[n];
    for (int i = 0; i < n; i++) {
      v[i] = Double.parseDouble(vs[i]);
    }
    solve(n, v);
  }
} import java.util.PriorityQueue; PriorityQueue java.util import java.util.Scanner; Scanner java.util class Main {
  private static void solve(int n, double[] v) {
    PriorityQueue<Double> pq = new PriorityQueue<>(n);
    for (double val : v) {
      pq.add(val);
    }
    while (pq.size() > 1) {
      double v1 = pq.poll();
      double v2 = pq.poll();
      pq.add((v1 + v2) / 2);
    }
    System.out.println(pq.poll());
  }
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.nextLine());
    String[] vs = sc.nextLine().split(" ");
    sc.close();
    double[] v = new double[n];
    for (int i = 0; i < n; i++) {
      v[i] = Double.parseDouble(vs[i]);
    }
    solve(n, v);
  }
} Main private static void solve(int n, double[] v) {
    PriorityQueue<Double> pq = new PriorityQueue<>(n);
    for (double val : v) {
      pq.add(val);
    }
    while (pq.size() > 1) {
      double v1 = pq.poll();
      double v2 = pq.poll();
      pq.add((v1 + v2) / 2);
    }
    System.out.println(pq.poll());
  } solve {
    PriorityQueue<Double> pq = new PriorityQueue<>(n);
    for (double val : v) {
      pq.add(val);
    }
    while (pq.size() > 1) {
      double v1 = pq.poll();
      double v2 = pq.poll();
      pq.add((v1 + v2) / 2);
    }
    System.out.println(pq.poll());
  } PriorityQueue<Double> pq = new PriorityQueue<>(n); pq new PriorityQueue<>(n) for (double val : v) {
      pq.add(val);
    } double val v {
      pq.add(val);
    } {
      pq.add(val);
    } pq.add(val) pq.add pq val while (pq.size() > 1) {
      double v1 = pq.poll();
      double v2 = pq.poll();
      pq.add((v1 + v2) / 2);
    } pq.size() > 1 pq.size() pq.size pq 1 {
      double v1 = pq.poll();
      double v2 = pq.poll();
      pq.add((v1 + v2) / 2);
    } double v1 = pq.poll(); v1 pq.poll() pq.poll pq double v2 = pq.poll(); v2 pq.poll() pq.poll pq pq.add((v1 + v2) / 2) pq.add pq (v1 + v2) / 2 (v1 + v2) v1 v2 2 System.out.println(pq.poll()) System.out.println System.out System System.out pq.poll() pq.poll pq int n n double[] v v public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.nextLine());
    String[] vs = sc.nextLine().split(" ");
    sc.close();
    double[] v = new double[n];
    for (int i = 0; i < n; i++) {
      v[i] = Double.parseDouble(vs[i]);
    }
    solve(n, v);
  } main {
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.nextLine());
    String[] vs = sc.nextLine().split(" ");
    sc.close();
    double[] v = new double[n];
    for (int i = 0; i < n; i++) {
      v[i] = Double.parseDouble(vs[i]);
    }
    solve(n, v);
  } 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 String[] vs = sc.nextLine().split(" "); vs sc.nextLine().split(" ") sc.nextLine().split sc.nextLine() sc.nextLine sc " " sc.close() sc.close sc double[] v = new double[n]; v new double[n] n for (int i = 0; i < n; i++) {
      v[i] = Double.parseDouble(vs[i]);
    } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
      v[i] = Double.parseDouble(vs[i]);
    } {
      v[i] = Double.parseDouble(vs[i]);
    } v[i] = Double.parseDouble(vs[i]) v[i] v i Double.parseDouble(vs[i]) Double.parseDouble Double vs[i] vs i solve(n, v) solve n v String[] args args
import java.util.PriorityQueue;
import java.util.Scanner;

class Main {
  private static void solve(int n, double[] v) {
    PriorityQueue<Double> pq = new PriorityQueue<>(n);
    for (double val : v) {
      pq.add(val);
    }
    while (pq.size() > 1) {
      double v1 = pq.poll();
      double v2 = pq.poll();
      pq.add((v1 + v2) / 2);
    }
    System.out.println(pq.poll());
  }
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.nextLine());
    String[] vs = sc.nextLine().split(" ");
    sc.close();
    double[] v = new double[n];
    for (int i = 0; i < n; i++) {
      v[i] = Double.parseDouble(vs[i]);
    }
    solve(n, v);
  }
}