func_code_string: #include <bits/stdc++.h>   using namespace std;   const int _ = 2e5 + 7;   const int __ = 8e5 + 7;   const long long inf = 1e17;   int n, m, q;   long long wgt[2][_], cst[_], minx[__], tag[__];   struct edge {     int x, y;     long long w;   } e[_];   void build(int k, int l, int r, bool id) {     tag[k] = 0;     if (l == r) {       if (!id) {         minx[k] = wgt[0][l] + cst[l];       } else         minx[k] = wgt[1][l];       return;     }     int mid = (l + r) >> 1;     build(k << 1, l, mid, id);     build(k << 1 | 1, mid + 1, r, id);     minx[k] = min(minx[k << 1], minx[k << 1 | 1]);   }   bool rule_x(edge a, edge b) { return a.x < b.x; }   void init() {     cin >> n >> m >> q;     n--;     for (int i = 1; i <= n; i++) scanf( %lld%lld , &wgt[0][i], &wgt[1][i]);     for (int i = 1; i <= m; i++) scanf( %d%d%lld , &e[i].x, &e[i].y, &e[i].w);     sort(e + 1, e + 1 + m, rule_x);     build(1, 0, n, 1);   }   void upd(int k, long long w) {     minx[k] += w;     tag[k] += w;   }   void psd(int k) {     if (!tag[k]) return;     upd(k << 1, tag[k]);     upd(k << 1 | 1, tag[k]);     tag[k] = 0;   }   void modify(int k, int l, int r, int x, int y, long long w) {     if (l >= x && r <= y) {       upd(k, w);       return;     }     psd(k);     int mid = (l + r) >> 1;     if (x <= mid) modify(k << 1, l, mid, x, y, w);     if (y > mid) modify(k << 1 | 1, mid + 1, r, x, y, w);     minx[k] = min(minx[k << 1], minx[k << 1 | 1]);   }   long long query(int k, int l, int r, int x, int y) {     if (l >= x && r <= y) return minx[k];     psd(k);     int mid = (l + r) >> 1;     long long t1 = inf, t2 = inf;     if (x <= mid) t1 = query(k << 1, l, mid, x, y);     if (y > mid) t2 = query(k << 1 | 1, mid + 1, r, x, y);     return min(t1, t2);   }   void pre() {     int p = 1;     for (int i = 1; i <= n + 1; i++) {       while (p <= m && e[p].x <= i) {         modify(1, 0, n, 0, e[p].y - 1, e[p].w);         p++;       }       if (i == n + 1)         cst[0] = query(1, 0, n, 0, n);       else         cst[i] = query(1, 0, n, 0, n);     }     build(1, 0, n, 0);   }   void run() {     printf( %lld n , query(1, 0, n, 0, n));     int x;     long long w;     for (int i = 1; i <= q; i++) {       scanf( %d%lld , &x, &w);       modify(1, 0, n, x, x, -wgt[0][x] + w);       wgt[0][x] = w;       printf( %lld n , query(1, 0, n, 0, n));     }   }   int main() {     init();     pre();     run();     return 0;   }   