#include<iostream>#include<cstdio>usingnamespace std;int n, sum[100005];double sufMax[100005], preMin[100005], c[100005];boolcheck(double mid){for(int i =0; i <= n; i++){
c[i]= sum[i]- mid * i;}
preMin[1]= c[1];for(int i =2; i <= n; i++)// 求前缀和最小值{
preMin[i]=min(preMin[i -1], c[i]);}
sufMax[n -1]= c[n -1];for(int i = n -2; i >=1; i--)// 求后缀和最大值{
sufMax[i]=max(sufMax[i +1], c[i]);}for(int i =2; i <= n -1; i++){if(sufMax[i]- preMin[i -1]> c[n]){return0;}}return1;}intmain(){scanf("%d",&n);for(int i =1; i <= n; i++){int x;scanf("%d",&x);
sum[i]= sum[i -1]+ x;}double l =0, r =10005, mid;while(r - l >1e-5){
mid =(l + r)/2;if(check(mid)){
l = mid;}else{
r = mid;}}printf("%.3lf", l);return0;}