#include<bits/stdc++.h>
using namespace std;
const int N=400010;
int a[N];
long long sum[N];
int main()
{
// freopen("1121.in","r",stdin);
// freopen("1121.out","w",stdout)
int n;
scanf("%d",&n);
for(int i = 1;i <= n;i ++)
{
scanf("%d",&a[i]);
sum[i] = sum[i-1] + a[i];
}
for(int i = n + 1;i <= 2 * n;i ++)
{
a[i] = a[i-n];sum[i] = sum[i - 1] + a[i];
}
int l = 1,r = 1,inl = 1,inr = 1;
long long c = -1e9,ans = 0;
while(l <= r)
{
if(a[r + 1] + sum[r] - sum[l - 1] > a[r + 1]) ++ r;
else l = r + 1, ++ r;
if(r - l + 1 >= n - 1) ++l;
if(sum[r] - sum[l - 1] > c)
{
c = sum[r] - sum[l - 1];
inl = l,inr = r;
}
if(l == n || r == 2 * n) break;
}
// for(int i = 1;i <= n;i ++) cout << sum[i] <<' ';
// cout<< endl;
// cout << inl << ' ' << inr << ' ' << c <<endl;
ans += c;
int ll = max(1,inr - n + 1),rr = ll,inll = ll,inrr = ll;c = 0;
if(inl == inr) c=-1e9;
while(ll <= rr)
{
if(a[rr + 1] + sum[rr] - sum[ll - 1] > a[rr + 1]) ++ rr;
else ll = rr + 1, ++ rr;
if(rr - ll + 1 >= n) ++ll;
if(rr == inl || ll > n || rr == 2 * n) break;
if(sum[rr] - sum[ll - 1] > c)
{
c = sum[rr] - sum[ll - 1];
inll = ll,inrr = rr;
}
// cout<< c <<' '<< ll <<' '<< rr <<endl;
}
ll = inr + 1,rr = ll;
while(ll <= rr)
{
if(a[rr + 1] + sum[rr] - sum[ll - 1] > a[rr + 1]) ++ rr;
else ll = rr + 1, ++ rr;
if(rr == inl + n) break;
if(sum[rr] - sum[ll - 1] > c)
{
c = sum[rr] - sum[ll - 1];
inll = ll,inrr = rr;
}
}
// cout << inll <<' ' << inrr <<' '<< c << endl;
ans += c;
cout << ans;
return 0;
}