# import sys

# sys.setrecursionlimit(10 ** 6)

int1 = lambda x: int(x) - 1

def II(): return int(eval(input()))



def MI(): return list(map(int, input().split()))

def MI1(): return list(map(int1, input().split()))



def LI(): return list(map(int, input().split()))

def LLI(rows_number): return [LI() for _ in range(rows_number)]



from collections import deque



def solve():

    n = II()

    V = LI()



    V = deque(sorted(V))



    vi = V.popleft()

    while 1:

        vj = V.popleft()

        avg = (vi + vj) / 2

        V.append(avg)

        V = deque(sorted(V))



        vi = V.popleft()

        if len(V) == 0:

            break

    print(vi)



if __name__ == '__main__':

    solve()

# import sys

# sys.setrecursionlimit(10 ** 6)

int1 = lambda x: int(x) - 1

def II(): return int(eval(input()))



def MI(): return list(map(int, input().split()))

def MI1(): return list(map(int1, input().split()))



def LI(): return list(map(int, input().split()))

def LLI(rows_number): return [LI() for _ in range(rows_number)]



from collections import deque



def solve():

    n = II()

    V = sorted(LI())

    ans = V[0]

    for i in range(1, n):

        ans = (ans + V[i]) / 2

    print(ans)



if __name__ == '__main__':

    solve()

# import sys
# sys.setrecursionlimit(10 ** 6)
int1 = lambda x: int(x) - 1


def II():
    return int(eval(input()))


def MI():
    return list(map(int, input().split()))


def MI1():
    return list(map(int1, input().split()))


def LI():
    return list(map(int, input().split()))


def LLI(rows_number):
    return [LI() for _ in range(rows_number)]


from collections import deque


def solve():
    n = II()
    V = LI()
    V = deque(sorted(V))
    vi = V.popleft()
    while 1:
        vj = V.popleft()
        avg = (vi + vj) / 2
        V.append(avg)
        V = deque(sorted(V))
        vi = V.popleft()
        if len(V) == 0:
            break
    print(vi)


if __name__ == "__main__":
    solve()

# import sys
# sys.setrecursionlimit(10 ** 6)
int1 = lambda x: int(x) - 1


def II():
    return int(eval(input()))


def MI():
    return list(map(int, input().split()))


def MI1():
    return list(map(int1, input().split()))


def LI():
    return list(map(int, input().split()))


def LLI(rows_number):
    return [LI() for _ in range(rows_number)]


from collections import deque


def solve():
    n = II()
    V = sorted(LI())
    ans = V[0]
    for i in range(1, n):
        ans = (ans + V[i]) / 2
    print(ans)


if __name__ == "__main__":
    solve()

-    V = LI() -    V = deque(sorted(V)) -    vi = V.popleft() -    while 1: -        vj = V.popleft() -        avg = (vi + vj) / 2 -        V.append(avg) -        V = deque(sorted(V)) -        vi = V.popleft() -        if len(V) == 0: -            break -    print(vi) +    V = sorted(LI()) +    ans = V[0] +    for i in range(1, n): +        ans = (ans + V[i]) / 2 +    print(ans)