/* */ //#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 S[N]; long long sparse_gcd[20][N],sparse_s[20][N],sparse_max[20][N]; int gcd(int a,int b){ b=abs(b); while (a&&b)a>b?a%=b:b%=a; return a+b; } vector > order; long long suf_max[N]; 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; long long ttl=0; for (int i=1;i<=n;i++){ cin>>ar[i]; S[i]=S[i-1]+ar[i]; } suf_max[n]=S[n]; for (int i=n-1;i>=0;--i) suf_max[i]=max(suf_max[i+1],S[i]); long long ans=-1e18; order.clear(); for (int i=1;i<=n;i++){ order.push_back(make_pair(S[i],i)); } sort(order.begin(),order.end()); long long MX=order.back().first; srand(time(NULL)); if (rand()%2) random_shuffle(order.begin(),order.end()); for (int ii=0;iians) ans=here; } if (clock()*1.0/CLOCKS_PER_SEC>1.98) break; } cout<