/* */ //#pragma GCC optimize("O3") #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define y0 sdkfaslhagaklsldk #define y1 aasdfasdfasdf #define yn askfhwqriuperikldjk #define j1 assdgsdgasghsf #define tm sdfjahlfasfh #define lr asgasgash #define norm asdfasdgasdgsd #define have adsgagshdshfhds #define ends asdgahhfdsfshdshfd #define eps 1e-8 #define M_PI 3.141592653589793 #define bsize 512 #define ldouble long double using namespace std; #define bs 1000000007 const int N = 600031; int n,ar[N]; long long ans,S[N],S2[N],S3[N]; void update(int l,int r){ long long here=(S[r]-S[l-1])*(S[r]-S[l-1])-(S2[r]-S2[l-1]); ans=max(ans,here); } set > se; set > ::iterator it; set > se2; set > se3; int main(){ // freopen("apache.in","r",stdin); // freopen("apache.out","w",stdout); //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); ios_base::sync_with_stdio(0); // cin.tie(0); cin>>n; for (int i=1;i<=n;i++){ cin>>ar[i]; S[i]=S[i-1]+ar[i]; S2[i]=S2[i-1]+1ll*ar[i]*ar[i]; S3[i]=S[i]*S[i]-S2[i]; } if (n<=5000){ for (int l=1;l<=n;l++){ for (int r=l;r<=n;r++){ update(l,r); } } cout<50) break; int id=(*it).second; update(id,i); } cnt=0; for (it=se.end();;--it){ if (it==se.begin()) break; if (it==se.end()) continue; ++cnt; if (cnt>50) break; int id=(*it).second; update(id,i); } cnt=0; /// cp for (it=se2.begin();it!=se2.end();it++) { ++cnt; if (cnt>50) break; int id=(*it).second; update(id,i); } cnt=0; for (it=se2.end();;--it){ if (it==se2.begin()) break; if (it==se2.end()) continue; ++cnt; if (cnt>50) break; int id=(*it).second; update(id,i); } // cp2 cnt=0; /// cp for (it=se3.begin();it!=se3.end();it++) { ++cnt; if (cnt>50) break; int id=(*it).second; update(id,i); } cnt=0; for (it=se3.end();;--it){ if (it==se3.begin()) break; if (it==se3.end()) continue; ++cnt; if (cnt>50) break; int id=(*it).second; update(id,i); } se.insert(make_pair(S[i],i)); se2.insert(make_pair(S2[i],i)); se3.insert(make_pair(S3[i],i)); } cout<