4
int Value(vector<int> a, int n) {5
vector<long long> pre(n + 2, 0);6
for (int i = 1; i <= n; i++) pre[i] = (pre[i - 1] + a[i - 1]) % mod;7
for (int i = 1; i <= n + 1; i++) pre[i] = (pre[i - 1] + pre[i]) % mod;8
for (int i = n + 1; i > 0; i--) pre[i] = pre[i - 1];10
vector<int> l(n, -1), r(n, n);12
// Find all left index13
for (int i = 0; i < n; i++) {14
while (!st.empty() && a[st.top()] >= a[i]) st.pop();15
if (!st.empty()) l[i] = st.top();20
while (!st.empty()) st.pop();22
// Find all right index23
for (int i = n - 1; i >= 0; i--) {24
while (!st.empty() && a[st.top()] > a[i]) st.pop();26
if (!st.empty()) r[i] = st.top();30
// for(int i=0;i<n;i++) cout<<a[i]<<" "; cout<<"\n";31
// for(int i=0;i<n;i++) cout<<l[i]<<" "; cout<<"\n";32
// for(int i=0;i<n;i++) cout<<r[i]<<" "; cout<<"\n";35
for (int i = 0; i < n; ++i) {36
ans += (((pre[r[i] + 1] - pre[i + 1]) * (i - l[i]) % mod + mod * 2 -37
(pre[i + 1] - pre[l[i] + 1]) * (r[i] - i) % mod) %44
int totalStrength(vector<int> &s) {