func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 300000;   vector<long long> st;   void add(vector<long long>& st, int x, long long inc) {     while (x < st.size()) {       st[x] += inc;       x |= x + 1;     }   }   long long sum(const vector<long long>& st, int x) {     long long s = 0;     while (x >= 0) {       s += st[x];       x = (x & (x + 1)) - 1;     }     return s;   }   void insert(int l, int r, long long p) {     add(st, r + 1, -p);     add(st, l, p);   }   int n, m, k;   int l[maxn], r[maxn];   long long d[maxn];   pair<int, int> a[maxn];   long long p[maxn];   int main() {     cin >> n >> m >> k;     st.resize(n + 3);     for (int i = 1; i <= n; i++) scanf( %I64d , &p[i]);     for (int i = 1; i <= m; i++) {       scanf( %d%d%I64d , &l[i], &r[i], &d[i]);     }     for (int i = 1; i <= k; i++) {       int x, y;       scanf( %d%d , &x, &y);       a[i] = make_pair(x, -1);       a[i + k] = make_pair(y + 1, 1);     }     sort(a + 1, a + 1 + 2 * k);     int sta = 1, tot = 0;     for (int i = 1; i <= m; i++) {       while (sta <= 2 * k && a[sta].first == i) tot -= a[sta++].second;       insert(l[i], r[i], d[i] * tot);     }     for (int i = 1; i <= n; i++) printf( %I64d  , sum(st, i) + p[i]);   }   