#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
int n,a[N],sum[N],tmp,loc1,loc2,ans;
int dis(int p,int q){
if(p>q)
swap(p,q);
return min(q-p,sum[n+1]-q+p);
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
sum[i+1]+=sum[i]+a[i];
}
for(int i=1;i<=n;i++){
tmp=a[i]+sum[n+1]/2;
tmp%=sum[n+1];
if(tmp==0){
loc1=1,loc2=1;
}
else if(tmp>sum[n]){
loc1=n,loc2=1;
}
else if(tmp<sum[2]){
loc1=1,loc2=2;
}
else{
loc1=upper_bound(sum+1,sum+n+2,tmp)-sum-1;
loc2=lower_bound(sum+1,sum+n+2,tmp)-sum;
}
ans=max(ans,dis(loc1,tmp));
ans=max(ans,dis(loc2,tmp));
}
cout<<ans;
return 0;
}