#include #include #include #include #include using namespace std; const long long int mod = 1000000007; vector transform(vector A, long long int N); int main() { long long int N; cin >> N; vector A(N); long long int temp; for(long long int i = 0; i < N; i++) { cin >> temp; A[i] = temp; } //cout << "Tejas" << endl; vector B = transform(A, N); //cout << "Tejas" << endl; vector C = transform(B, B.size()); long long int ans = 0; for(long long int i = 0; i < C.size(); i++) { ans = (ans + C[i])%mod; } cout << ans << endl; return 0; } vector transform(vector A, long long int N) { vector B; //cout << "Cool" << endl; long long int **mA = new long long int*[N]; for(long long int i = 0; i < N; i++) { mA[i] = new long long int[N]; mA[i][i] = A[i]; for(long long int j = i+1; j < N; j++) { mA[i][j] = max(mA[i][j-1], A[j]); } } //cout << "Cool" << endl; for(long long int k = 0; k < N; k++) { for(long long int i = 0; i < N-k; i++) { B.push_back(mA[i][i+k]); } } //cout << "Cool" << endl; return B; }