#3710. 例3-区间加权更新-差分3
例3-区间加权更新-差分3
题目描述:
给定一个长度为 n 的数组,初始时所有元素均为 0。现有 m 次操作,每次操作给定四个整数 l, r, a, d,表示对区间 [l, r] 的每个位置进行加法操作:
- 第 l 个位置加上 a;
- 第 l+1 个位置加上 a + d;
- 第 l+2 个位置加上 a + 2d;
- 依此类推,直到第 r 个位置加上 a + (r-l)d。
请你利用差分数组的思想快速处理所有操作,并输出最终数组的所有元素。
输入格式:
- 第一行包含两个正整数 n 和 m。
- 接下来 m 行,每行包含四个整数 l r a d,表示一次区间加权更新操作。(下标从 1 开始)
输出格式:
- 输出一行 n 个整数,依次表示最终数组的各个元素,数字之间用空格隔开。
样例输入:
5 2
1 3 1 2
2 5 2 1
数据范围:1<=n,m<=10^7
样例输出:
1 5 8 4 5
样例说明:
- 操作 1:对区间 [1, 3] 更新
- 第 1 个位置加 1
- 第 2 个位置加 1+2 = 3
- 第 3 个位置加 1+4 = 5
数组变为:1 3 5 0 0
- 操作 2:对区间 [2, 5] 更新
- 第 2 个位置加 2
- 第 3 个位置加 2+1 = 3
- 第 4 个位置加 2+2 = 4
- 第 5 个位置加 2+3 = 5
最终数组为:
第 1 个位置:1
第 2 个位置:3 + 2 = 5
第 3 个位置:5 + 3 = 8
第 4 个位置:0 + 4 = 4
第 5 个位置:0 + 5 = 5