#include <bits/stdc++.h>
double getmin(double* v, int* len) {
  double min = v[0];
  int del = 0;
  for (int i = 1; i < *len; i++) {
    if (min > v[i]) {
      min = v[i];
      del = i;
    }
  }
  double cp[*len];
  for (int l = 0; l < *len; l++) {
    cp[l] = v[l];
  }
  int o = 0;
  for (int m = 0; m < *len; m++) {
    if (o != del) {
      v[o] = cp[m];
    } else {
      m++;
    }
    o++;
  }
  *len = *len - 1;
  return min;
}
double* apend(double* v, double val, int* len) {
  *len = *len + 1;
  v[*len - 1] = val;
  return v;
}
int main() {
  int n, m;
  scanf("%d", &n);
  m = n;
  int* len = &m;
  double v[n];
  for (int i = 0; i < n; i++) {
    scanf("%lf", &v[i]);
  }
  double p, q, val;
  for (int l = 0; l < n - 1; l++) {
    for (int i = 0; i < *len; i++) {
      fprintf(stderr, "%lf ", v[i]);
    }
    fprintf(stderr, "\n");
    p = getmin(v, len);
    for (int i = 0; i < *len; i++) {
      fprintf(stderr, "%lf ", v[i]);
    }
    fprintf(stderr, "\n");
    q = getmin(v, len);
    for (int i = 0; i < *len; i++) {
      fprintf(stderr, "%lf ", v[i]);
    }
    val = (p + q) / 2.0;
    apend(v, val, len);
    for (int i = 0; i < *len; i++) {
      fprintf(stderr, "%lf ", v[i]);
    }
    fprintf(stderr, "\n");
  }
  printf("%lf\n", v[0]);
  return 0;
}
