C++ 代码
#include<iostream>
using namespace std;
const int N = 1e7;
int a[N];
void dis(int a[],int l,int r,int k) //差分函数
{
a[l] += k;
a[r+1]-=k;
}
int main()
{
int n,m,k;
cin>>n>>m;
for(int i = 1;i<=n;i++) cin>>k,dis(a,i,i,k);//原数组也可直接用差分存
while(m--)
{
int l,r,j;
cin>>l>>r>>j;
dis(a,l,r,j);
}
for(int i = 1;i<=n;i++) a[i]+=a[i-1],cout<<a[i]<<" ";//前缀和一下输出
return 0;
}