#include using namespace std; #define MOD 1000000007 int solve(vector& A) { // Return the sum of S(S(A)) modulo 10^9+7. vector A1 = A; int i, j; int Result = 0; for(i = 0; i < A.size(); i++) { Result = (Result + A[i]) % MOD; } for(i = 1; i < A.size(); i++) { for(j = 0; (i + j) < A.size(); j++) { A[j] = max(A[j], A[(j + 1)]); A1.push_back(A[j]); Result = (Result + A[j]) % MOD; } } vector A2 = A1; for(i = 1; i < A1.size(); i++) { for(j = 0; (i + j) < A1.size(); j++) { A1[j] = max(A1[j], A1[(j + 1)]); A2.push_back(A1[j]); Result = (Result + A1[j]) % MOD; } } return Result; } int main() { int n; cin >> n; vector A(n); for(int A_i = 0; A_i < n; A_i++){ cin >> A[A_i]; } int result = solve(A); cout << result << endl; return 0; }