#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <set>
#include <map>
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <sstream>
#include <cassert>
#include <utility>

using namespace std;

#define EPS 1E-8
const int INF = (int)1E+9;

#define C_IN_FILE "wedding.in"
#define C_OUT_FILE "wedding.out"

#define forn(i, n) for (int i = 0; i < (int)(n); ++i)
#define forv(i, v) for (int i = 0; i < (int)(v.size()); ++i)
#define fors(i, s) for (int i = 0; i < (int)(s.length()); ++i)
#define all(a) a.begin(), a.end()
#define pb push_back
#define PII pair<int, int>
#define mp make_pair
#define VI vector<int>
#define VS vector<string>

int n;
int a[100];
double ans;

void outdata() {
	printf("%0.6lf\n", ans);
}

void solve() {
	forn(i, n) if (ans < a[i]) ans = (ans + a[i]) * 0.5;
}

void readdata() {
	scanf("%d", &n);
	assert(1 <= n && n <= 40);
	forn(i, n) {
		assert(scanf("%d", &a[i]) == 1);
		assert(0 <= a[i] && a[i] <= 1000000000);
	}
	sort(a, a + n);
	int x;
	assert(scanf("%d", &x) == 1);
	assert(0 <= x && x <= 1000000000);
	ans = x;
}

int main() {
    freopen(C_IN_FILE, "rt", stdin);
    freopen(C_OUT_FILE, "wt", stdout);
	readdata();
	solve();
	outdata();
	return 0;
}

