3291、区间更新
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
/*
对差分数组做前缀和,可以得到原数组
for(int i=1;i<=n;i++)
diff[i]=a[i]-a[i-1];
将区间都加上x:
diff[l]+=x;
diff[r+1]-=x;
*/
const int N = 1e5+5;
int a[N],diff[N];
int main() {
IOS;
int n,m;
while(cin>>n>>m){
for(int i=1;i<=n;i++){
cin>>a[i];
diff[i]=a[i]-a[i-1];
}
while(m--){
int x,y,z;cin>>x>>y>>z;
diff[x]+=z;
diff[y+1]-=z;
}
for(int i=1;i<=n;i++)a[i]=a[i-1]+diff[i];
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
cout<<"\n";
}
return 0;
}