#include <iostream> #include <vector> using namespace std; //写这个题特别需要注意边界问题,老是报错 int main() { int n,m; cin>>n>>m; vector<long long> arr(n+1,0); for(int i=1;i<=n;i++){ cin>>arr[i]; } vector<vector<long long>> oper(m,vector<long long>(3,0)); for(int i=0;i<m;i++){ cin>>oper[i][0]>>oper[i][1]>>oper[i][2]; } vector<long long> dp(n+1,0); for(int i=1;i<n+1;i++){ dp[i]=arr[i]-arr[i-1]; } for(int i=0;i<m;i++){ int l=oper[i][0]; int r=oper[i][1]; int k=oper[i][2]; dp[l]+=k; if(r+1<=n) dp[r+1]-=k; } for(int i=1;i<=n;i++){ arr[i]=arr[i-1]+dp[i]; } for(int i=1;i<n+1;i++){ cout<<arr[i]<<" "; } cout<<endl; return 0; } // 64 位输出请用 printf("%lld")