#12767. 区间加法
区间加法
区间加法(Range Addition)
题目描述
给定一个长度为 n 的数组 A,初始时所有元素都为 0。
接下来会有 k 次更新操作。
每次操作用三个整数表示:
startIndex endIndex inc
表示将数组中下标从 startIndex 到 endIndex(包含两端)的所有元素 **同时增加 inc**。
所有操作执行完成后,请输出最终数组。
输入格式
第一行包含两个整数:
n k
n表示数组长度k表示操作数量
接下来 k 行,每行包含三个整数:
start end inc
表示一次区间更新操作。
输出格式
输出一行 n 个整数:
A0 A1 A2 ... A(n-1)
表示最终数组状态。
相邻数字之间用一个空格分隔。
数据范围
1 ≤ n ≤ 100000
0 ≤ k ≤ 10000
0 ≤ startIndex ≤ endIndex < n
-1000 ≤ inc ≤ 1000
样例
输入
5 3
1 3 2
2 4 3
0 2 -2
输出
-2 0 3 5 3
样例解释
初始数组:
[0, 0, 0, 0, 0]
操作 1:
[1,3] +2
数组变为:
[0, 2, 2, 2, 0]
操作 2:
[2,4] +3
数组变为:
[0, 2, 5, 5, 3]
操作 3:
[0,2] -2
最终数组:
[-2, 0, 3, 5, 3]
提示:
如果每次都逐个修改区间中的元素,
在 n 很大时可能会超时。
是否可以只记录“变化发生的位置”?