#include using namespace std; size_t intervalMax(vector myvector, size_t start, size_t end) { size_t mymax, tmp, i; mymax = 0; for (i = start; i < myvector.size() && i <= end; i++) { tmp = myvector[i]; if (tmp > mymax) { mymax = tmp; } } return mymax; } vector maxTransform(vector myvector) { size_t i, j, k; vector B; for (k = 0; k < myvector.size(); k++) { for (i = 0; i < (myvector.size() - k); i++) { j = i + k; B.push_back(intervalMax(myvector, i, j)); } } return B; } size_t sumElements(vector myvector) { size_t sumSoFar = 0; for (size_t i = 0; i < myvector.size(); i++) { sumSoFar += myvector[i]; } return sumSoFar % (1000000000 + 7); } size_t solve(vector myvector) { return sumElements(maxTransform(maxTransform(myvector))); } int main() { size_t n; cin >> n; vector a(n); for(size_t a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } size_t result = solve(a); cout << result << endl; return 0; }