func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 1000001;   int n;   int l[MAXN];   int r[MAXN];   int num[MAXN];   int izq[MAXN];   int der[MAXN];   long long int ans[MAXN];   long long int bit[2][MAXN];   vector<pair<int, int> > L[MAXN];   vector<pair<int, int> > R[MAXN];   void update(int id, int a, int v) {     while (a <= n) {       bit[id][a] += v;       a += a & -a;     }   }   void update_range(int a, int b, int v) {     a++, b++;     update(0, a, v);     update(0, b + 1, -v);     update(1, a, v * (a - 1));     update(1, b + 1, -v * b);   }   long long int query(int id, int a) {     long long int ans = 0;     while (a > 0) {       ans += bit[id][a];       a -= a & -a;     }     return ans;   }   long long int query(int b) { return query(0, b) * b - query(1, b); }   long long int query_range(int a, int b) {     if (a > b) return 0ll;     a++, b++;     return query(b) - query(a - 1);   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     int q;     cin >> n >> q;     vector<pair<int, int> > A;     for (int i = 0; i < n; ++i) {       cin >> num[i];       A.emplace_back(num[i], i);     }     sort(A.begin(), A.end());     reverse(A.begin(), A.end());     set<int> s;     s.insert(-1);     s.insert(n);     for (int i = 0; i < n; ++i) {       auto it = s.lower_bound(A[i].second);       der[A[i].second] = *it;       it--;       izq[A[i].second] = *it;       s.insert(A[i].second);     }     for (int i = 0; i < q; ++i) cin >> l[i];     for (int i = 0; i < q; ++i) cin >> r[i];     for (int i = 0; i < q; ++i) {       l[i]--, r[i]--;       L[l[i]].emplace_back(r[i], i);       R[r[i] + 1].emplace_back(l[i], i);     }     for (int i = n - 1; i >= 0; i--) {       update_range(izq[i] + 1, der[i] - 1, 1);       for (int j = 0; j < R[i].size(); ++j)         ans[R[i][j].second] -= query_range(R[i][j].first, i - 1);       for (int j = 0; j < L[i].size(); ++j)         ans[L[i][j].second] += query_range(i, L[i][j].first);     }     for (int i = 0; i < q; ++i) cout << ans[i] <<    ;     cout <<   n ;     return 0;   }   