(挣牛币用的)

先开差分数组,再这样那样,最后求出差分数组的前缀和就好了

#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
    int n, m;
    cin >> n >> m;
    vector<int> arr(n + 1);
    for(int i = 1; i <= n; ++i)
        cin >> arr[i];
    vector<int> v(n + 2);
    for(int i = 1; i <= n; ++i)
        v[i] = arr[i] - arr[i - 1];

    while(m--)
    {
        int l, r, k;
        cin >> l >> r >> k;
        v[l] += k;
        v[r + 1] -= k; 
    }
    partial_sum(v.begin(), v.end(), v.begin());
    for(int i = 1; i <= n; ++i)
        cout << v[i] << ' ';
}
// 64 位输出请用 printf("%lld")