#include #include #include #include #include using namespace std; int max(int a,int b) { if(a>b) { return a; } else { return b; } } int find(int i,int k,int n) { int x=0; for(int l=1;l<=k-1;l++) { x+=n; n--; } x=x+i; return x; } int main() { /* Enter your code here. Read input from STDIN. Print output to STDOUT */ int n,j,t=0,s=0; cin>>n; int a[n],b[(n*(n+1))/2]; for(int y=0;y>a[y]; } for(int k=0;k<=n-1;k++) { for(int i=0;i<=n-k-1;i++) { if(k==0) { b[t]=a[i]; } else { b[t]=max(b[find(i,k,n)],a[i+k]); } t++; } } t=0; int g=(n*(n+1))/2; int d=(g*(g+1))/2; int c[d]; for(int f=0;f<=g-1;f++) { for(int q=0;q<=g-f-1;q++) { if(f==0) { c[t]=b[q]; } else { c[t]=max(c[find(q,f,g)],b[f+q]); } s+=c[t]; t++; } } cout<