#include <bits/stdc++.h>
void exchange(int *s, bool *b, int m, int z) {
  int x;
  bool boo;
  x = *(s + m);
  boo = *(b + m);
  *(s + m) = *(s + z);
  *(b + m) = *(b + z);
  *(s + z) = x;
  *(b + z) = boo;
}
void sortx(int *s, int n, int p) {
  bool *b;
  b = (bool *)malloc(sizeof(bool) * (n + 1));
  if (b == NULL) return;
  int q = 0;
  for (int m = 0; m < n; m++) {
    if (p < *(s + m)) {
      *(b + m) = true;
      q++;
    } else {
      *(b + m) = false;
    }
  }
  exchange(s, b, 0, q);
  for (int m = 0; m < q; m++) {
    if (*(b + m) == false) {
      for (int z = 0 + q; z < n; z++) {
        if (*(b + z) == true) {
          exchange(s, b, m, z);
        }
      }
    }
  }
  free(b);
  if (n <= 1) {
  } else {
    sortx(s, q, *s);
    sortx(s + q + 1, n - q - 1, *(s + q + 1));
  }
}
int main() {
  int a;
  scanf("%d", &a);
  int *s;
  s = (int *)malloc(sizeof(int) * (a + 1));
  if (s == NULL) return -1;
  for (int x = 0; x < a; x++) {
    scanf("%d", s + x);
  }
  sortx(s, a, *s);
  double value = *(s)*1.0;
  for (int x = 1; x < a; x++) {
    value = (value + *(s + x)) / 2;
  }
  printf("%f", value);
  free(s);
  scanf("\n%d", &a);
  return 0;
}
