#include using namespace std; #define fRead(x) freopen(x,"r",stdin) #define fWrite(x) freopen (x,"w",stdout) #define LL long long #define ULL unsigned long long #define ff first #define ss second #define pb push_back #define INF 2e16 #define PI acos(-1.0) #define mk make_pair #define pii pair #define pll pair #define min3(a,b,c) min(a,min(b,c)) #define max3(a,b,c) max(a,max(b,c)) #define min4(a,b,c,d) min(a,min(b,min(c,d))) #define max4(a,b,c,d) max(a,max(b,max(c,d))) #define SQR(a) ((a)*(a)) #define FOR(i,a,b) for(int i=a;i<=b;i++) #define ROF(i,a,b) for(int i=a;i>=b;i--) #define REP(i,b) for(int i=0;iran; int vis[N]; int max_sub() { LL s = 0 , index = 0 , maxi = 0; for(int i = n;i>=1;i--){ s = s + (- ara[i]); if(s < maxi){ maxi = s; index = i; } } return index; } int main() { srand(time(NULL)); int timer = 0; cin >> n; FOR(i,1,n)cin >> ara[i]; FOR(i,1,n)ran.push_back(i); random_shuffle(ran.begin(),ran.end()); for(int i = 1;i<=10;i++)ran.push_back(i); for(int i = 1;i<=10;i++)ran.push_back(n - i + 1); for(int i = 1;i<=10;i++)ran.push_back(n/2 + i); for(int i = 1;i<=10;i++)ran.push_back(n/3 + i); for(int i = 1;i<=10;i++)ran.push_back(n/4 + i); for(int i = 1;i<=10;i++)ran.push_back(n/5 + i); for(int i = 1;i<=10;i++)ran.push_back(n - n/2 + i); for(int i = 1;i<=10;i++)ran.push_back(n - n/3 + i); for(int i = 1;i<=10;i++)ran.push_back(n - n/4 + i); for(int i = 1;i<=10;i++)ran.push_back(n - n/5 + i); ran.push_back(max_sub()); REV(ran); for(int i = 0;i < ran.size();i++){ LL in = ran[i]; if(in < 1 or in > n)continue; if(vis[in])continue; vis[in] = 1; LL s = 0 , ans = 0; for(int j = in ;j <= n;j++){ ans = ans + s * ara[j]; mx = max(mx,ans); s = s + ara[j]; timer++; } if(timer > 9e8)break; } cout << mx << "\n"; }