#include using namespace std; typedef long long ll; const ll MOD = (1e9 + 7); int n; int M[4002][20]; int f(int x,int y){ return log2(y-x+1); } vector max(vector v){ vector ans; for(int l=0;l A; int left(int x,int pos){ int ans = -1; for(int i=0;i= x) ans = i; } return ans; } int right(int x,int pos){ int ans = A.size(); for(int i=pos+1;ix) return i; } return ans; } int main(){ cin>>n; A.resize(n); for(int i=0;i>A[i]; for(int i=0;i A[M[i+(1<<(j-1))][j-1]]) M[i][j] = M[i][j-1]; else M[i][j] = M[i+(1<<(j-1))][j-1]; } } A = max(A); ll ans = 0; for(int i=0;i