10
-405 -230 252 -393 -390 -259 97 163 81 -129
 3
10000 -10000 10000
 1
-10000
 20
-16 -23 29 44 -40 -50 -41 34 -38 30 -12 28 -44 -49 15 50 -28 38 -2 0

702.333333333333712
 10000.000000000016371
 0.000000000000000
 113.875000000000043

n = int(input())
As = list(map(int, input().split()))

def solve(n, As):
    if n == 1:
        return 0
    if n == 2:
        return abs(As[0] - As[1]) / 2
    left = min(As)
    right = max(As)
    eps = 0.5 * 10 ** -6
    r = (1 + 5 ** 0.5) ** 0.5
    r1 = 1 + r
    leftval = f((left * r + right)/r1, As)
    rightval = f((left + right * r)/r1, As)
    maxloop = 50
    for i in range(maxloop):
        if leftval > rightval:
            right = (left + right * r)/r1
            rightval = leftval
            leftval = f((left * r + right)/r1, As)
        else:
            left = (left * r + right)/r1
            leftval = rightval
            rightval = f((left + right * r)/r1, As)
    return min(leftval, rightval)
    
def f(x, As):
    cum = 0
    cmax = - float('inf')
    cmin = float('inf')
    for a in As:
        cum += a - x
        if cum > cmax:
            cmax = cum
        if cum < cmin:
            cmin = cum
    return cmax - cmin

print(solve(n, As))
