func_code_string: #include <bits/stdc++.h>   using namespace std;   long long arr[100005], tree[100005], used[100005], l[100005], r[100005],       d[100005], b[100005], query[100005], x, y, n, m, k;   template <class T>   inline T lowbit(T n) {     return (n & -n);   }   void update(long long s[], int index, long long val) {     while (index <= 100005) {       s[index] += val;       index += (index & (-index));     }   }   long long getS(long long s[], int l, int r) {     if (l > r)       return 0;     else if (l == 1) {       long long res = 0;       for (; r > 0; r -= lowbit(r)) res += s[r];       return res;     } else {       return getS(s, 1, r) - getS(s, 1, l - 1);     }   }   int main() {     cin >> n >> m >> k;     for (int i = 0; i < n; i++) {       cin >> arr[i];     }     for (int i = 0; i < m; i++) {       cin >> l[i] >> r[i] >> d[i];     }     for (int i = 0; i < k; i++) {       cin >> x >> y;       update(tree, x, 1);       update(tree, y + 1, -1);     }     for (int i = 1; i <= m; i++) {       used[i] = getS(tree, 1, i);     }     for (int i = 0; i < m; i++) {       update(b, l[i], d[i] * used[i + 1]);       update(b, r[i] + 1, -d[i] * used[i + 1]);     }     for (int i = 0; i < n; i++) {       query[i + 1] = getS(b, 1, i + 1);     }     for (int i = 1; i <= n; i++) {       cout << arr[i - 1] + query[i];       if (i != n) {         cout <<    ;       } else {         cout << endl;       }     }   }   