#include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; int64_t *arr = new int64_t[n]; for (int i = 0; i < n; ++i) { int64_t a; cin >> a; arr[i] = a; } int64_t saLen = (n*n + n) / 2; int64_t ssaLen = (saLen*saLen + saLen) / 2; vector sa, ssa; sa.reserve(saLen); //ssa.reserve(ssaLen); for (int k = 0; k < n; k++) { for (int i = 0; i < n - k; i++) { int j = i + k; int64_t peak = 0; for (int z = i; z <= j; z++) { peak = max(peak, arr[z]); } sa.push_back(peak); } } int64_t sum = 0; for (int k = 0; k < saLen; k++) { for (int i = 0; i < saLen - k; i++) { int j = i + k; int64_t peak = 0; for (int z = i; z <= j; z++) { peak = max(peak, sa[z]); } sum += peak; if (sum > 1000000007) sum -= 1000000007; } } cout << sum; return 0; }