#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MOD 1000000007 using namespace std; int getMax(vector &nums, int idx, int idy) { int res = nums[idx]; for (int i = idx; i <= idy; i++) { res = max(res, nums[i]); } return res; } int main() { ios::sync_with_stdio(false); int n; cin >> n; vector nums(n); for (int i = 0; i < n; i++) { cin >> nums[i]; } vector SA; for (int k = 0; k < n; k++) { for (int i = 0; i < n - k; i++) { int j = i + k; SA.push_back(getMax(nums, i, j)); } } vector SSA; for (int k = 0; k < (int)SA.size(); k++) { for (int i = 0; i < (int)SA.size() - k; i++) { int j = i + k; SSA.push_back(getMax(SA, i, j)); } } int res = 0; for (int i = 0; i < (int)SSA.size(); i++) { res += SSA[i]; res %= MOD; } cout << res << endl; return 0; }