//核心:尺取法
//思路见注释;
#include<iostream>
using namespace std;
const int N=10000006;
int a[N];
int main(){
int n,sum=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
sum+=a[i];
}//计算sum方便后面之间除二找最小的最大距离;
int right=0,tt=0,ans;//right从第一个小朋友开始,当第一个与某第right个小朋友之间的距离大于等于sum/2时既为第一个点;
for(int i=0;i<n;i++){//i为左端点,right为右端点,tt则为两者之间的距离,
while(tt<sum/2){
tt+=a[right%n];//right%n的目的:因为小朋友是绕圈的,当超过第n个小朋友之后就又从第一个小朋友开始;
right++;
}
ans=max(ans,min(tt,sum-tt));//先求两个小朋友之间的最小的最大距离,再在循环中求所有小朋友之间的距离的最大距离;
tt-=a[i];//i往右移了所以两者之间的距离得先减去a[i];
}
cout<<ans<<endl;
return 0;
}
//笱蒻的思路,有错的地方敬请指正。 </iostream>