#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fi first
#define se second
#define siz(x) (int)(x.size())
#define all(x) x.begin(), x.end()
#define debug_arr(x,len) for(int _=1; _<=len; _++) cout<<x[_]<<" "; cout<<'\n';
#define debug(x) cout<<'\n'<<#x<<": "<<x<<'\n';
const int maxN = 1e6+5;
int n;
double a[maxN], b[maxN];
double cal(double x)
{
for(int i=1; i<=n; i+=1) b[i] = a[i] - x;
double tmp = 0, res1 = 0, res2 = 0;
for(int i=1; i<=n; i+=1)
{
if(tmp < 0) tmp = 0;
tmp += b[i];
res1 = max(res1, tmp);
}
for(int i=1; i<=n; i+=1) b[i] = -b[i];
tmp = 0;
for(int i=1; i<=n; i+=1)
{
if(tmp < 0) tmp = 0;
tmp += b[i];
res2 = max(res2, tmp);
}
return max(res1, res2);
}
int32_t main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
cin>>n;
for(int i=1; i<=n; i+=1) cin>>a[i];
double l = -1e18, r = 1e18;
while(r - l > 1e-6)
{
double mid = (l+r) / 2;
if(cal(mid) >= cal(mid+1e-6)) l = mid;
else r = mid;
}
cout<<fixed<<setprecision(6)<<min(cal(l),cal(r))<<'\n';
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBzaXooeCkgKGludCkoeC5zaXplKCkpCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIGRlYnVnX2Fycih4LGxlbikgZm9yKGludCBfPTE7IF88PWxlbjsgXysrKSBjb3V0PDx4W19dPDwiICI7IGNvdXQ8PCdcbic7CiNkZWZpbmUgZGVidWcoeCkgY291dDw8J1xuJzw8I3g8PCI6ICI8PHg8PCdcbic7CmNvbnN0IGludCBtYXhOID0gMWU2KzU7CgppbnQgbjsKZG91YmxlIGFbbWF4Tl0sIGJbbWF4Tl07CmRvdWJsZSBjYWwoZG91YmxlIHgpCnsKCWZvcihpbnQgaT0xOyBpPD1uOyBpKz0xKSBiW2ldID0gYVtpXSAtIHg7Cglkb3VibGUgdG1wID0gMCwgcmVzMSA9IDAsIHJlczIgPSAwOwoJZm9yKGludCBpPTE7IGk8PW47IGkrPTEpCgl7CgkJaWYodG1wIDwgMCkgdG1wID0gMDsKCQl0bXAgKz0gYltpXTsKCQlyZXMxID0gbWF4KHJlczEsIHRtcCk7Cgl9Cglmb3IoaW50IGk9MTsgaTw9bjsgaSs9MSkgYltpXSA9IC1iW2ldOwoJdG1wID0gMDsKCWZvcihpbnQgaT0xOyBpPD1uOyBpKz0xKQoJewoJCWlmKHRtcCA8IDApIHRtcCA9IDA7CgkJdG1wICs9IGJbaV07CgkJcmVzMiA9IG1heChyZXMyLCB0bXApOwoJfQoJcmV0dXJuIG1heChyZXMxLCByZXMyKTsKfQoKaW50MzJfdCBtYWluKCkKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKCWNpbj4+bjsKCWZvcihpbnQgaT0xOyBpPD1uOyBpKz0xKSBjaW4+PmFbaV07Cglkb3VibGUgbCA9IC0xZTE4LCByID0gMWUxODsKCXdoaWxlKHIgLSBsID4gMWUtNikKCXsKCQlkb3VibGUgbWlkID0gKGwrcikgLyAyOwoJCWlmKGNhbChtaWQpID49IGNhbChtaWQrMWUtNikpIGwgPSBtaWQ7CgkJZWxzZSByID0gbWlkOwoJfQoJY291dDw8Zml4ZWQ8PHNldHByZWNpc2lvbig2KTw8bWluKGNhbChsKSxjYWwocikpPDwnXG4nOwp9