#include using namespace std; const int N = 2.5e5 + 5; #define MOD 1000000007 #define lli long long int #define ulli unsigned long long int #define fr first #define sc second #define INF 1e9 #define L_INF 1e18 #define p_b push_back #define m_p make_pair #define plli pair #define pii pair lli segtree[1000000]={0}; void build_tree(int node,int start,int end,vector AR ){ if(start==end){ segtree[node]=AR[start]; //cout<r){ return 0; } if(start>=l && end<=r){ return segtree[node]; } int mid=(start+end)/2; lli p1=getans(2*node,start,mid,l,r); lli p2=getans(2*node+1,mid+1,end,l,r); return max(p1,p2); } vector fun(vector ar){ int n=ar.size(); build_tree(1,1,n-1,ar); vector ret; for(int k=0;k<(n-1);k++){ for(int i=0;i<=((n-1)-k-1);i++){ int j=i+k; lli re=getans(1,1,n-1,i+1,j+1); //cout< ar1; ar1.p_b(0); int n; cin>>n; for(int i=0;i>x; ar1.p_b(x); } vector ar2=fun(ar1); vector ar3; ar3.p_b(0); for(int i=0;i ar4=fun(ar3); lli ans=0; for(int i=0;i