// #牛客春招刷题训练营# https://www.nowcoder.com/discuss/726480854079250432 // 我先是用的暴力,没有算时间复杂度,超时了,还不知道差分看的题解,C++第一篇有图片我感觉讲的挺好的 #include <iostream> #include <vector> #define ll long long using namespace std; int main() { int n, m; cin >> n >> m; vector<ll> a(n); vector<ll> b(n); cin >> a[0]; b[0] = a[0]; for (int i = 1; i < n; i++) { cin >> a[i]; b[i] = a[i] - a[i - 1];//------计算差分,本来最好数组多开一个 } int l, r, k; while(m--){ cin >> l >> r >> k; b[l - 1] += k; if (r < n) b[r] -= k; } a[0] = b[0]; cout << b[0] << ' '; for (int i = 1; i < n; i++){ a[i] = a[i - 1] + b[i]; cout << a[i] << ' '; } } // 64 位输出请用 printf("%lld")