题目描述
输入描述
输出描述
输入输出样例
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
解题思路
使用差分法,使用差分数组记录后一个元素与前一个元素的差值。
差分数组性质,当我们希望对原数组的某一区间[l,r]施加一个增量ins时,差分数组d对应的改变是:d[l]增加ins,d[r+1]减少ins。这样对于区间的修改计算变为了对于两个位置的修改。
于是我们先定义了一个insert函数改变差分数组。
代码
import os
import sys
N,Q=map(int,input().split())
lis=list(map(int,input().split()))
b = [0 for _ in range(N+1)]
def insert(b,l,r,x):
b[l-1] +=x
b[r] -= x
return b
for i in range(Q):
l,r,x=map(int,input().split())
insert(b,l,r,x)
for i in range(1,N):
b[i] += b[i-1]
print(' '.join(str(max(b[i]+lis[i],0))for i in range(N)))