#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<long long> a(n+1);
vector<long long> pf(n+1,0);
for(int i=1;i<=n;++i) {
cin >> a[i];
pf[i] = pf[i-1]+a[i];
}
auto qry = [&](int l,int r)->double {
return (double)(pf[r]-pf[l-1])/(r-l+1);
};
double A = qry(1,n);
vector<array<double,2>> cands = {{A,A}};
for(int len=1; len<n; ++len) {
int L = 1, R = n-len+1, p = 0;
while(L <= R) {
int md = (L+R)/2;
if(qry(md, md+len-1) < A) {
p = md;
L = md+1;
} else {
R = md-1;
}
}
cands.push_back({qry(p,p+len-1), qry(p+1,p+len)});
}
sort(cands.begin(), cands.end());
double res = 1e9, mx = cands.back()[0];
for(auto [x,y]: cands) {
res = min(res, mx-x);
mx = max(mx, y);
}
cout << fixed << setprecision(10) << res << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIHZlY3Rvcjxsb25nIGxvbmc+IGEobisxKTsKICAgIHZlY3Rvcjxsb25nIGxvbmc+IHBmKG4rMSwwKTsKICAgIGZvcihpbnQgaT0xO2k8PW47KytpKSB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICAgICAgcGZbaV0gPSBwZltpLTFdK2FbaV07CiAgICB9CgogICAgYXV0byBxcnkgPSBbJl0oaW50IGwsaW50IHIpLT5kb3VibGUgewogICAgICAgIHJldHVybiAoZG91YmxlKShwZltyXS1wZltsLTFdKS8oci1sKzEpOwogICAgfTsKCiAgICBkb3VibGUgQSA9IHFyeSgxLG4pOwogICAgdmVjdG9yPGFycmF5PGRvdWJsZSwyPj4gY2FuZHMgPSB7e0EsQX19OwoKICAgIGZvcihpbnQgbGVuPTE7IGxlbjxuOyArK2xlbikgewogICAgICAgIGludCBMID0gMSwgUiA9IG4tbGVuKzEsIHAgPSAwOwogICAgICAgIHdoaWxlKEwgPD0gUikgewogICAgICAgICAgICBpbnQgbWQgPSAoTCtSKS8yOwogICAgICAgICAgICBpZihxcnkobWQsIG1kK2xlbi0xKSA8IEEpIHsKICAgICAgICAgICAgICAgIHAgPSBtZDsKICAgICAgICAgICAgICAgIEwgPSBtZCsxOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgUiA9IG1kLTE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2FuZHMucHVzaF9iYWNrKHtxcnkocCxwK2xlbi0xKSwgcXJ5KHArMSxwK2xlbil9KTsKICAgIH0KCiAgICBzb3J0KGNhbmRzLmJlZ2luKCksIGNhbmRzLmVuZCgpKTsKICAgIGRvdWJsZSByZXMgPSAxZTksIG14ID0gY2FuZHMuYmFjaygpWzBdOwogICAgZm9yKGF1dG8gW3gseV06IGNhbmRzKSB7CiAgICAgICAgcmVzID0gbWluKHJlcywgbXgteCk7CiAgICAgICAgbXggPSBtYXgobXgsIHkpOwogICAgfQoKICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDEwKSA8PCByZXMgPDwgIlxuIjsKICAgIHJldHVybiAwOwp9